今年在 Google I/O 大會上,我們分享了 Chrome 如何運用瀏覽器 API 的強大功能,重新塑造使用者驗證和身分驗證。無論您使用密碼、密碼金鑰或聯合登入,Chrome 都會提供統一的登入和註冊體驗,讓使用者享有更簡單、安全且友善的體驗。
探索最新工具和最佳做法,提升網站的註冊和登入功能。
如要進一步瞭解重點內容,請查看工作坊頁面或繼續閱讀本文。
瀏覽器是登入的好幫手
網路上的驗證機制正在演進。隨著使用者期望升高、新法規出現,以及數位身分工具生態系統日益壯大,開發人員需要提供安全、順暢且能保護隱私權的登入和註冊流程。Chrome 很樂意提供協助。
我們主要著重於以下三個領域:
- 使用者驗證:透過聯合憑證管理 (FedCM),提供更完善的密碼管理、更簡便的密碼金鑰採用方式,以及內建的 ID 聯盟支援功能,協助您支援高強度登入流程。
- 身分驗證:讓您使用行動錢包中的數位憑證,要求驗證過的使用者詳細資料,例如年齡或身分證件擁有權。
- 工作階段管理:使用裝置繫結工作階段憑證,將工作階段繫結至使用者的裝置,協助您在使用者登入後保護他們的安全。
探索這些功能的工具和 API。
適用於網頁的憑證管理工具:提供單一登入介面,可用於所有憑證
登入應該要方便。不過,由於密碼、密碼金鑰和聯合選項都會同時出現,使用者往往會面臨混淆的選擇。
Chrome 會擴充 Credential Manager API,讓您使用單一一致的介面,從瀏覽器要求憑證 (無論類型為何)。如果憑證可透過密碼管理工具取得,Chrome 會在單一對話方塊中向使用者顯示憑證,降低使用者的複雜度。
如果 Chrome 找不到憑證,我們會通知您,您可以改用自己的登入流程。
這項全新體驗可減少轉換障礙,讓登入過程更順暢。
這項功能目前處於開發人員試用階段。您可以啟用 chrome://flags#enable-experimental-web-platform-features
標記 (包括 password
憑證和 publicKey
憑證),並使用 mediation: "immediate"
啟用即時中介服務,即可開始在本機使用此功能。
下列程式碼片段說明應有的樣貌:
const cred = await navigator.credentials.get({
password: true,
publicKey: {
challenge,
rpId: 'example.com'
},
mediation: 'imme
diate',
});
如要進一步瞭解如何在 Chrome 上測試即時中介服務,請參閱這份說明文件。
密碼:更聰明、更安全
密碼仍是全球最常見的驗證方法。瀏覽器和密碼管理工具提供的工具可改善密碼登入體驗,但網站不一定會採用這些工具。
Chrome 透過 Google 密碼管理工具提供的功能,可協助使用者採取更安全的做法,例如在註冊表單中產生密碼,或是檢查密碼是否遭到入侵,提醒使用者憑證遭到盜用的風險。
以下列出幾個工具,可改善使用者在網站上使用密碼的體驗。
自動變更密碼:一鍵修正遭外洩的密碼
自動密碼變更功能將於今年稍晚推出,適用於部分網站,可讓使用者在憑證遭到危害時,更輕鬆地做出回應。
Chrome 在登入時偵測到密碼遭到入侵,Google 密碼管理工具就會提示使用者選擇自動修正密碼的選項。
在支援的網站上,Chrome 可以產生強力替換密碼,並自動為使用者更新密碼。
這樣一來,就能減少使用者在帳戶設定中尋找所需資訊的時間,或中途放棄設定程序,進而減少使用者操作的阻力,並協助使用者確保帳戶安全。
您可以採取一些措施,讓網站與瀏覽器和密碼管理工具搭配運作,達到最佳化。
- 自動完成功能最佳化:使用
autocomplete="current-password"
和autocomplete="new-password"
觸發自動填入和儲存功能。請參閱登入和註冊指南。 - 變更密碼網址:將
<your-website-domain>/.well-known/change-password
重新導向至網站上的密碼變更表單 (已知的變更密碼網址)。當系統偵測到有安全漏洞的密碼時,密碼管理工具可以將使用者導向變更密碼頁面。
流暢共用憑證:在應用程式和網站中使用單一登入畫面
密碼管理工具不僅能儲存密碼,這類應用程式只會在網域相符時提供憑證,有助於防範網路釣魚。但如果您的服務橫跨多個網域和平台,使用者仍可能會遇到問題。
例如:
- 使用者在 Android 應用程式中註冊,之後透過筆記型電腦造訪您的網站
- 或提供多個網域或應用程式,且這些網域或應用程式都接受相同的登入資訊
如果沒有共用憑證,我們不會提供已儲存的密碼,因此使用者可能會難以登入。
流暢共用憑證功能有助於解決這個問題。只要將應用程式和網站連結,Google 密碼管理工具就能在這些資產之間順暢地分享密碼,提供更順暢、簡便的登入體驗。
eBay 成功提高 10% 的登入成功率。請參閱以下個案研究,進一步瞭解相關資訊:eBay 如何透過流暢的憑證共用功能,將登入成功率提高 10%。
密碼金鑰:更簡單安全的登入方式
密碼金鑰是密碼的更安全替代方案,可讓使用者透過裝置解鎖機制 (例如生物特徵辨識 (例如指紋或臉部辨識)、PIN 碼或解鎖圖案) 安全登入網站和應用程式。這類驗證方法可防範網路釣魚,且使用者友善,是瀏覽器和作業系統廣泛採用的標準。
跨平台同步處理密碼金鑰
使用者會將密碼金鑰儲存在密碼管理工具中,但部分管理工具不會同步處理密碼金鑰。如果使用者嘗試從無法使用密碼金鑰的裝置登入,就可能會發生摩擦。在這種情況下,Chrome 會顯示 QR code,方便使用者透過另一部裝置完成登入程序,該裝置必須儲存憑證。
為減少這種摩擦,Chrome 在 Google 密碼管理工具中新增了密碼金鑰同步功能。
現在支援 iOS,Google 密碼管理工具的密碼金鑰可在所有主要平台上同步,包括 Android、Windows、macOS、ChromeOS 和 Linux。詳情請參閱「支援的環境」一文。
即時中介服務:只要求可用的憑證
部分使用者並未在每部裝置上同步密碼金鑰。如果在本機找不到密碼金鑰,Chrome 可能會顯示 QR code,方便使用者使用另一部裝置存取憑證。這個做法雖然可行,但可能會增加摩擦。
為減少這種摩擦,Chrome 支援新的選項:mediation: 'immediate'
。這樣一來,您的網站就只會要求目前裝置已可使用的憑證。如果找不到任何相符項目,使用者就不會看到任何內容。不顯示提示、不掃描 QR code、不中斷操作。Chrome 會通知你,讓你改為顯示慣用的登入 UI。
這樣一來,系統就不會為沒有憑證的使用者提供 QR code 流程,進而改善使用體驗。
使用者採取任何有意義的動作時,例如點按「登入」或「結帳」按鈕,請採用這種做法。當您將 navigator.credentials.get()
與 mediation: 'immediate'
搭配使用時,如果目前裝置上有密碼金鑰,Chrome 會立即提示使用者。如果不是,使用者可以繼續操作,而您可以顯示密碼欄位、一次性驗證碼或其他方法。
您也可以設定 password: true
,提高協助使用者登入的機會。這樣一來,Chrome 就能在可用時,一併傳回已儲存的密碼和密碼金鑰。
以下範例說明如何透過即時中介服務要求密碼金鑰:
navigator.credentials.get({
publicKey: {
challenge: new Uint8Array([/* your challenge here */]),
rpId: 'example.com'
},
mediation: 'immediate',
//< password: true == enable this to request passwords alongside passkeys
}).t>hen(credential = {
// Use the credential for sign in
>}).catch(error = {
if (error.name === 'NotAllowedError') {
// No credential found on this device, fall back to another method
} else {
console.error('Error durin
g sign-in', error);
}
});
這項功能位於開發人員教學課程中,如要進一步瞭解這項功能,請參閱 WebAuthn 即時中介服務說明。
自動建立密碼金鑰
許多使用者仍會使用密碼登入。為協助使用者採用密碼金鑰,Chrome 推出了 API,可在使用者成功登入密碼後,自動為他們建立密碼金鑰。
您只需要要求建立密碼金鑰。如果使用者有最近使用的已儲存密碼,密碼管理工具會建立密碼金鑰,並通知您是否成功。密碼金鑰可用後,使用者可能會收到通知。這麼做不會刪除使用者的密碼。
如果未建立密碼金鑰,瀏覽器就不會打擾使用者或顯示任何 UI。
這樣一來,使用者就能逐步採用密碼金鑰,而不中斷登入流程。
這項功能適用於 Chrome 136 以上版本,詳情請參閱「協助使用者更順暢地採用密碼金鑰」一文。
使用 Signal API 清除密碼金鑰
如果使用者從您的網站或應用程式中刪除密碼金鑰,密碼管理工具可能仍會在登入時提供該金鑰,導致登入失敗和混淆。Signal API 可讓應用程式在移除密碼金鑰時通知密碼管理工具,確保憑證清單正確無誤。
您也可以將已知密碼金鑰清單傳送至密碼管理工具,協助密碼金鑰保持最新狀態。這可讓它為使用者清理任何未使用的密碼金鑰。
Signal API 自 Chrome 132 版起開放使用。如要進一步瞭解,請參閱「使用 Signal API 讓密碼金鑰與伺服器上的憑證保持一致」一文。
匯入及匯出:隨身攜帶憑證
使用者在密碼管理工具之間切換時,經常會遇到轉移憑證的困難。Chrome 將新增支援符合 FIDO 標準的密碼金鑰和密碼匯入和匯出功能。使用者不需要處理檔案。
自動填入功能強化
為了以友善的方式顯示儲存的憑證,Chrome 可在登入表單準備就緒時,自動顯示自動填入下拉式選單。只要在表單中支援密碼和密碼金鑰,並將自動對焦套用至輸入欄位即可。
這很實用,因為系統會顯示憑證,而不需要使用者點選欄位。使用者只要輕觸要使用的憑證即可,可減少作業阻礙。
如要進一步瞭解如何使用密碼金鑰登入帳戶,請參閱這篇文章。
更新學習資源
我們已徹底整頓密碼金鑰學習資源,確保您能為使用者提供最佳的密碼金鑰體驗。
FedCM:改善聯合身分識別
Federated Credential Management API (FedCM) 可讓使用者透過瀏覽器中介流程登入信任的 ID 服務供應器,以隱私權和使用者體驗為優先。FedCM 可簡化網站上的註冊和登入體驗,讓開發人員不必費心就能提供順暢的驗證服務。
更聰明的使用者介面
FedCM 現在可讓您進一步控管登入提示的顯示方式和時間。支援兩種模式:
- 被動模式:當使用者返回您的網站時,瀏覽器會自動顯示已知身分識別提供者的登入提示。這對熟悉的使用者來說非常實用,但如果顯示得太早,使用者可能會覺得受到干擾。
- 主動模式:只有在使用者按下登入按鈕後,系統才會顯示提示,打造更有意義的體驗。
這點很重要,因為這有助於減少使用者的困惑,避免讓他們感到意外。使用活動模式時,使用者可以留在您的網站上,不會看到重新導向或其他對話方塊。
不過,Chrome 也致力於讓待命模式更聰明。未來的更新版本將嘗試採用機器學習技術,結合網站和使用者信號,以決定顯示 UI 的時機和方式,提供最佳使用者體驗。
更彈性的 API
FedCM 可讓您更靈活地控管使用者以聯合式身分登入的方式。
舉例來說,支援多個身分識別提供者可讓您向使用者顯示提供者清單,而非僅顯示單一提供者。這表示使用者可以選擇適合自己的帳戶,進而提高登入率,同時確保使用者隱私。
瀏覽器仍會在每個步驟中進行調解。身分識別提供者只會看到使用者明確允許的內容,整個流程中都會保護隱私。
數位憑證:快速、隱私的線上身分驗證
數位憑證在全球越來越普遍。讓使用者透過數位錢包驗證年齡、學生身分或身分等屬性。Digital Credentials API 可讓使用者直接從行動錢包,將經過驗證的聲明 (例如年齡或駕照狀態) 分享給網站。
我們正與 W3C 和業界領導品牌合作,將這項做法納入標準。我們的目標是提供跨平台的使用者友善、安全、隱私且一致的體驗。
一些有趣的功能:
- 跨裝置支援。使用者可以透過任何裝置安全地出示憑證。
- 選擇性揭露。使用者可以確認「年滿 18 歲」等詳細資料,而不必揭露不必要的資訊。
- 可驗證的資訊。核發機構會為資料加上數位簽名,方便直接驗證。
- 核發。我們正在擴充數位憑證 API,讓使用者能夠將這些憑證佈建到錢包應用程式。
裝置繫結工作階段憑證:保持登入狀態,確保安全
使用者工作階段通常會透過 Cookie 進行識別,而惡意軟體可能會從使用者的裝置中竊取 Cookie。
裝置繫結工作階段憑證會將工作階段連結至特定裝置。這麼做可降低工作階段劫持的風險,並在您登入電子郵件或社群媒體帳戶或存取政府服務時,提供更完善的保護機制。
DBSC 可將驗證資訊繫結至登入時使用的裝置,協助開發人員建立更安全、穩定的工作階段。
意見回饋
歡迎針對我們提供的所有資訊提供意見回饋。歡迎試用這些功能、探索這份文件中的連結,並與我們分享您的想法。