跨平台順暢共用憑證,盡可能提高使用者的便利性 你的網站和應用程式如果多個網站和 Android 應用程式共用同一個 使用者可以透過這項功能 儲存憑證一次 並在任何連結的網站或 Android 應用程式中自動提供建議。
最佳做法
為提供最佳使用者體驗和安全性,請實作順暢的憑證共用功能 跨這些接觸點:
- 登入表單:啟用自動填寫憑證功能。
- 申請表:安全地儲存新憑證,以便在各個平台上使用。
- 密碼變更表單:在所有平台同步處理密碼更新。
- 密碼重設表單:允許透過單一密碼重設密碼來更新所有平台。
- WebView 網域:將憑證共用範圍延伸至以下網域的 webView 網域: 處理帳戶管理 (主機登入、註冊、密碼等) 的應用程式 變更或密碼重設表單)。
- Android 應用程式
這個方法會建立統合式憑證管理系統,強化 便利性和安全性
設計帳戶管理網站時,建議您採取下列做法 帳戶管理網站的最佳做法:
在設計 Android 應用程式時,建議您將應用程式與 Android Credential Manager 整合。
必要條件
設定無縫憑證共用功能前,請確認您具備下列項目: 每個平台
針對每個 Android 應用程式:
- Android 應用程式 ID,如應用程式的
build.gradle
檔案中宣告。 - 簽署憑證的 SHA256 指紋。
- (建議做法) 已透過 Credential Manager API 實作使用者登入程序。
針對每個網站:
- 可針對每個項目發布
/.well-known/assetlinks.json
檔案 網域,按照 Digital Asset Links (DAL) 語法操作即可。 - 所有帳戶管理網域 (登入、註冊、密碼變更或密碼) 重設表單) 必須透過 HTTPS 存取。
在 Android 應用程式和網站之間順暢共用憑證
如要設定在各個應用程式和網站之間順暢共用憑證,請建立 並發布 Digital Asset Links 陳述式清單,以宣告哪些 實體 (網站或 Android 應用程式) 可以共用憑證。
如何宣告憑證共用關係:
建立
assetlinks.json
檔案,內含連至網站的陳述式,並 導入 Android 應用程式,請按照以下 DALs 陳述式清單語法操作:[ { "relation":[ "delegate_permission/common.get_login_creds" ], "target":{ "namespace":"web", "site":URL } }, { "relation":[ "delegate_permission/common.get_login_creds" ], "target":{ "namespace":"android_app", "package_name":"APP_ID", "sha256_cert_fingerprints":[ "SHA_HEX_VALUE" ] } } ]
其中
URL
是您的網站網址。APP_ID
是您的 Android 應用程式 ID。SHA_HEX_VALUE
是 您的 Android 應用程式簽署憑證。relation
欄位說明要宣告的關係。如要宣告 必須在應用程式和網站中共用登入憑證,指明delegate_permission/common.get_login_creds
。進一步瞭解 DAL 中的關係字串。target
欄位是一種物件,用於指定宣告的資產 。下列欄位可用來識別網站:
namespace
web
site
網站網址,格式為
https://domain[:optional_port
];例如 https://www.example.com。domain
必須完整,且使用 HTTPS 通訊埠 443 時,必須省略optional_port
。site
目標只能是根網域:您無法限制應用程式與特定子目錄建立關聯。請勿在網址中加入路徑,例如結尾的斜線。系統不會將子網域視為相符項目:也就是說,如果將
domain
指定為 www.example.com,網域 www.counter.example.com 就不會與您的應用程式建立關聯。下列欄位可用來識別 Android 應用程式:
命名空間
android_app
package_name
應用程式資訊清單中宣告的套件名稱。例如 com.example.android
sha256_cert_fingerprints
應用程式簽署憑證的 SHA256 指紋。
請在以下位置代管 Digital Asset Links JSON 檔案: 登入網域:
https://DOMAIN[:OPTIONAL_PORT]/.well-known/assetlinks.json
,其中DOMAIN
是完全合格的,以及 使用通訊埠 443 時,必須省略OPTIONAL_PORT
HTTPS在 Android 應用程式中嵌入陳述式,以宣告關聯: 連結至陳述式清單的 Android 應用程式
res/values/strings.xml
檔案 新增物件,用於指定assetlinks.json
檔案。 載入。例如:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://DOMAIN[:OPTIONAL_PORT]/.well-known/assetlinks.json\" }] </string>
將
DOMAIN
和OPTIONAL_PORT
(使用通訊埠時必須省略) HTTPS 為 443)。例如https://www.example.com
。避開所有格號 和半形引號。您也可以在
strings.xml
檔案中新增 JSON 程式碼片段,如下所示: DAL 說明文件,但使用include
陳述式可讓您 在不發布新版應用程式的情況下變更陳述式。將下列程式碼新增至 「
<application>
」底下的應用程式AndroidManifest.xml
檔案:<meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
將新版 Android 應用程式發布至 Google Play 開發人員 控制台
完成上述步驟後,您已成功設定無縫憑證 可在網站和 Android 應用程式之間分享
請注意,若要設定 DAL 以進行憑證共用,這是設定 DAL 的唯一有效方式。 但這種做法可簡化日後在 順暢的憑證共用網路、促進程式碼重複使用, 更新期間可能發生的錯誤