在各種板型規格下進行驗證

Credential Manager 可簡化整個 Android 生態系統的驗證程序。這項 API 可為使用者提供一致的體驗,並為開發人員提供統一的 API 介面,以便使用密碼金鑰、密碼和聯合登入機制,例如「使用 Google 帳戶登入」。雖然核心程式設計介面在各種板型規格中保持一致,但每種板型規格都有獨特的 UI 和 UX 考量。如要成功導入,您必須根據每部裝置的特定輸入法、螢幕大小和使用者情境,調整應用程式的驗證流程。

本指南概略說明如何在不同 Android 板型規格上導入 Credential Manager,並強調考量重點,以及提供更詳細說明文件的連結。

行動裝置

手機、平板電腦和摺疊式裝置等行動裝置,是 Android 開發最常見的目標。標準的 Credential Manager 實作方式非常適合這類裝置,因為這類裝置通常配備觸控螢幕和裝置端鍵盤。這個板型規格的使用者體驗是基準,可做為其他板型規格的調整依據。驗證流程應適合板型規格,並充分利用裝置的螢幕空間和輸入法。

Wear OS

Wear OS 裝置的特色是螢幕較小,且裝置端的輸入功能有限。Credential Manager 的密碼金鑰實作功能提供安全的環境,讓使用者登入應用程式,不必連線至配對的手機,也不必記住密碼。

Wear OS 的 API 與行動裝置相同,因此您可以重複使用現有的行動裝置整合功能。除了密碼金鑰、使用 Google 帳戶登入,以及 Credential Manager 的密碼,您也可以使用其他驗證方式,包括資料層權杖共用、OAuth 或現有解決方案。在將使用者轉移至 Credential Manager 的過程中,這些方法可做為備用方案,或在資料層權杖共用的情況下,做為長期解決方案。

如要在 Wear OS 使用 Credential Manager,必須符合下列規定:

  • 最低 API 級別:minSdkVersion 33 以上
    • 支援密碼、密碼金鑰和「使用 Google 帳戶登入」功能
  • GMS 版本:與行動應用程式的要求相同

Wear OS 裝置的使用者介面如下:

Wear OS 裝置會將密碼金鑰登入畫面顯示為偏好的驗證方式。
圖 1a. 密碼金鑰。
Wear OS 使用者可用的密碼金鑰、密碼和「使用 Google 帳戶登入」選項。
圖 1b. 密碼金鑰、密碼和「使用 Google 帳戶登入」
。

如需詳細的導入指南和程式碼範例,請參閱下列資源:

限制

在 Wear OS 上使用 Credential Manager 有下列限制:

Android XR

Android XR (包括虛擬和擴增實境) 會在 3D 空間中算繪應用程式。使用者輸入內容與其他板型規格的輸入內容有根本上的差異,主要仰賴手勢等自然輸入方式。

如要將 Credential Manager 調整為適用於 XR,就必須重新思考 3D 空間的驗證 UI (無論是使用密碼金鑰、密碼還是聯合登入方法)。舉例來說,驗證提示會顯示在浮動面板中,使用者則可透過手勢進行選取。此外,您也需要考慮目標 XR 裝置的任何特定硬體或軟體必要條件。

設計上的主要挑戰,是在 VR 或 AR 環境中打造直覺且安全的驗證體驗。您也必須考量如何在多使用者 XR 情境中管理身分,因為不同使用者可能會使用同一部裝置。

如要在 Android XR 上使用 Credential Manager,必須符合下列條件:

  • 最低 API 級別:minSdkVersion34 以上
  • GMS 版本:與行動應用程式的要求相同
  • 模擬器:
    • 最低模擬器系統映像檔:
      • macOS:Google Play XR ARM 64 v8a 系統映像檔修訂版本 7
      • Windows:Google Play XR Intel x86_64 Atom 系統映像檔修訂版本 7
    • 高於 35.6.11 穩定版的模擬器版本

XR 裝置上的登入體驗可能如下所示:

Android XR 中浮動 3D 面板顯示的 Credential Manager 登入提示。
圖 2. XR 中的 Credential Manager UI。

XR 不支援的流程

Android XR 的 Credential Manager 不支援需要其他裝置掃描 QR code 的驗證流程。在 XR 頭戴式裝置的登入程序中,以及使用模擬器測試時,都可以觀察到這點。

如要進一步瞭解 XR,請參閱「Android XR」。

Android TV

Android TV 裝置通常是共用裝置,使用者會從遠處觀看,並使用 D-Pad 遙控器操作。使用者可能難以在這個環境中輸入使用者名稱和密碼。Credential Manager 支援「使用 Google 帳戶登入」、已儲存的密碼和跨裝置密碼金鑰,可簡化 Android TV 的驗證程序。由於共用電視上通常有多個 Google 個人資料,Credential Manager 會適應這種共用設定,擷取並顯示裝置上的所有憑證,而不是只限制目前有效帳戶的選項。

Android TV 上的 Credential Manager 登入提示,顯示「使用 Google 帳戶登入」和密碼的已儲存帳戶,以及使用密碼金鑰的選項。
圖 3. Android TV 上的 Credential Manager UI,顯示「使用 Google 帳戶登入」、已儲存的密碼和密碼金鑰選項。

這種共用性質也決定了密碼金鑰的處理方式。由於電視沒有個人螢幕鎖定知識因素 (LSKF),因此密碼金鑰不會直接儲存或建立在電視上。密碼金鑰驗證則採用跨裝置混合流程,電視會顯示 QR code,使用者用行動裝置掃描後,即可完成生物辨識驗證。

如果設定 isAutoSelectAllowed = true,Google TV 就能提供免點擊流程,但前提是只有一個相符的憑證可用。系統仍會顯示原生電視底部功能表,顯示使用者的帳戶確認。如果使用者未取消,系統會自動傳回憑證,不需遠端點擊。如果有多個相符的憑證,系統不會自動選取,而是會提示使用者選擇。

如果行動應用程式和 TV 應用程式使用完全相同的 Android 套件名稱和簽署金鑰,Google 密碼管理工具會將兩者視為同一個應用程式。因此,儲存在行動裝置上的密碼可以直接在電視上提供,不需要設定 Digital Asset Links (asset_statements)。只有在跨界共用憑證時 (例如在應用程式和網站之間,或在套件名稱不同的應用程式之間),才需要使用 Digital Asset Links。

在 Android TV 上使用 Credential Manager 時,必須符合下列需求:

  • 最低 API 級別:Android 14 (API 級別 34,minSdkVersion 34) 以上版本
  • GMS 版本:2026W30 以上
  • 密碼金鑰硬體:需要配備相機和藍牙的第二部行動裝置,才能掃描 QR code 並完成 FIDO 混合流程

限制

Android TV 是共用裝置,因此在這個平台上使用 Credential Manager 時,會受到下列限制,以保護使用者隱私和安全:

  • 無法在本機建立或儲存密碼金鑰:無法直接在電視上建立或儲存密碼金鑰。由於系統不支援本機憑證,請勿在要求中將 preferImmediatelyAvailableCredentials 設為 true,否則系統會篩除跨裝置密碼金鑰,且無法傳回憑證。
  • 不支援第三方憑證提供者:Android TV 不支援自動填入功能,因此無法使用第三方密碼管理工具。使用者必須使用 Google 密碼管理工具。
  • 不支援還原憑證:Android TV 不支援使用「關於還原憑證」在新裝置上自動登入。

如要進一步瞭解電視開發作業,請參閱「Android TV 總覽」。

Android Automotive OS

Android Automotive OS (AAOS) 裝置是整合到車輛的共用系統。如要針對 AAOS 調整 Credential Manager,必須支援安全驗證 (通常是在車輛停妥時),並在共用裝置上容納多個使用者設定檔。

如果您將大螢幕或平板電腦最佳化應用程式移植到車輛,且應用程式已支援行動裝置或平板電腦上的 Credential Manager 和密碼金鑰,則可在 Android Automotive OS 上運作,無須變更驗證流程。

Android Automotive OS 支援下列驗證方法:

  • 密碼金鑰 (跨裝置混合流程):使用者可透過跨裝置流程,使用現有密碼金鑰進行驗證。系統會在車輛螢幕上顯示 QR code,使用者可透過行動裝置掃描。由於生物辨識和螢幕鎖定驗證是在使用者手機上進行,因此使用者不需要在車輛螢幕上設定螢幕鎖定。
  • 使用 Google 帳戶登入:直接在車輛螢幕上顯示原生的「使用 Google 帳戶登入」畫面。
  • 已儲存的密碼:使用者可以從 Google 密碼管理工具擷取已儲存的密碼,不必在車輛螢幕上手動輸入憑證即可登入。
Android Automotive OS 車載螢幕上顯示的 Credential Manager 密碼金鑰提示。
圖 5. Android Automotive OS 上的憑證管理工具密碼金鑰提示。

Android Automotive OS 會管理每個設定檔的工作階段和憑證,並在設定檔之間 (例如設定檔 A、設定檔 B 或訪客設定檔) 隔離使用者專屬的工作階段資料。

在 Android Automotive OS 中使用 Credential Manager 時,必須符合下列規定:

  • 最低 API 級別:Android 9 (API 級別 28,minSdkVersion 28) 以上版本。跨裝置密碼金鑰擷取功能需要 Android 14 (API 級別 34) 以上版本。
  • GMS 版本:與行動應用程式的要求相同。

測試限制

如要測試密碼金鑰,必須使用搭載 Android Automotive OS 版本的實體裝置做為主要介面。如需設定操作說明,請參閱「在 Pixel Tablet 上使用 Android Automotive OS 進行測試」。模擬器無法用於密碼金鑰測試,因為模擬器不支援藍牙低功耗 (BLE),而 FIDO 混合式流程需要這項技術。

限制和不支援的流程

在 Android Automotive OS 上使用 Credential Manager 時,有下列限制:

  • 不儲存或擷取本機密碼金鑰:車輛屬於共用裝置,因此不支援直接擷取本機密碼金鑰。直接將密碼金鑰同步到車輛會造成安全風險,因此必須透過跨裝置混合流程使用密碼金鑰。
  • 不支援即時可用的憑證:如果應用程式要求密碼金鑰,並將 preferImmediatelyAvailableCredentials 設為 true,Automotive UI 會立即終止,並擲回 NoCredentialException。為這個情境提供適當的備用使用者體驗。
  • 不支援第三方憑證提供者:Android Automotive OS 不支援第三方密碼管理工具。使用者必須使用 Google 密碼管理工具或跨裝置混合流程進行驗證。
  • 無法建立儲存的密碼:API 不支援直接從車輛介面建立及儲存新的密碼。憑證建立作業僅限使用 FIDO 混合流程的新密碼金鑰。

如要進一步瞭解 Automotive OS 開發作業,請參閱「Android Automotive OS 總覽」。

其他資源