為提供完善的密碼金鑰體驗,建議您的應用程式導入下列功能:
- 使用者密碼金鑰管理:在應用程式設定中加入專屬的密碼金鑰管理部分,讓使用者管理自己的密碼金鑰。
- 憑證提供者整合:如要與憑證提供者通訊,應用程式伺服器可以實作註冊、驗證和刪除的密碼金鑰端點。
使用者密碼金鑰管理
如要讓使用者管理密碼金鑰,請在應用程式中加入專屬的密碼金鑰管理部分,供使用者建立、查看、重新命名及刪除密碼金鑰。
顯示可用的密碼金鑰
在應用程式的密碼金鑰設定中,向使用者提供相關資訊,包括用於建立憑證的憑證提供者、建立日期和上次使用日期。
如要取得憑證供應商資訊,請使用與相應密碼金鑰相關聯的驗證器認證全球唯一 ID (AAGUID)。當您建立密碼金鑰時,系統會傳回 PublicKeyCredential,而 AAGUID 是其中的一部分。AAGUID 可讓您識別建立密碼金鑰的憑證供應者。詳情請參閱「使用 AAGUID 判斷密碼金鑰提供者」。
應用程式可以顯示密碼金鑰的下列詳細資料:
- 密碼金鑰名稱:顯示註冊密碼金鑰時指定的名稱。理想名稱會根據憑證供應商 (使用 AAGUID) 而定;如果無法識別供應商,請使用
android.os.Build中的裝置型號資訊。 - 供應商標誌:顯示憑證供應商的標誌。這項視覺提示可協助使用者快速找出要管理的正確密碼金鑰。
- 時間戳記:提供建立時間戳記和上次使用時間戳記。這項資訊可協助使用者管理憑證,以及找出舊密碼金鑰或未使用的密碼金鑰。
- 同步狀態指標:根據預設,密碼金鑰會與憑證供應商同步,但同步功能可能因供應商而異。為避免使用者混淆,請清楚指出密碼金鑰是否支援同步。
- 上次登入詳細資料 (選用):提供上次登入的瀏覽器、作業系統、IP 位址或位置等詳細資料。這項選用功能可協助使用者識別潛在可疑活動,非常實用。
除了這些詳細資料,畫面上還應顯示按鈕,讓使用者管理 (刪除或重新命名) 各個密碼金鑰。
建立多個密碼金鑰
您應在使用者歷程中提供建立密碼金鑰的機會,例如登入後立即提供,而應用程式的密碼金鑰設定部分應允許使用者從所選憑證提供者建立密碼金鑰。
為降低帳戶遭鎖定的風險,請允許使用者向不同憑證供應商註冊多個密碼金鑰。如果其中一個憑證供應商無法存取 (例如平台停止支援或使用者失去存取權),使用者可以改用其他密碼金鑰登入。請確認資料庫支援為每位使用者儲存多個憑證。不過,您可以禁止使用者透過相同的憑證供應商,為同一帳戶建立密碼金鑰。
刪除密碼金鑰
應用程式的密碼金鑰設定部分應允許使用者刪除密碼金鑰。
整合憑證提供者
如要確保應用程式伺服器和憑證供應商的密碼金鑰一致,請在應用程式伺服器上啟用預先定義路徑 /.well-known/passkey-endpoints 的密碼金鑰管理功能。這樣一來,憑證供應商就能直接使用這些端點管理密碼金鑰。詳情請參閱「新增密碼金鑰端點」。
其他資源
- 密碼金鑰使用者體驗指南
- 影片:如何使用密碼金鑰支援功能降低 Android 應用程式對密碼的依賴
- 程式碼研究室:瞭解如何在 Android 應用程式中使用 Credential Manager API 簡化驗證流程
- 範例應用程式:CredentialManager