在應用程式和網站之間啟用跨平台的無縫憑證共用功能,盡可能提升使用者便利性。當多個網站和 Android 應用程式共用帳戶管理後端時,使用者只要儲存一次憑證,系統就會在任何已連結的網站或 Android 應用程式中自動建議使用者憑證。
您可以透過兩種方式設定憑證共用功能:
- Play 管理中心:建議大多數開發人員在設定憑證與 Android 應用程式共用時使用。您可以使用這種方法設定憑證共用功能,而無需發布新版應用程式。請注意,即使您使用 Play 管理中心,仍需在網站上發布有效的
assetlinks.json
檔案。 - Digital Asset Links (DAL):適合進階用途,例如支援多個應用程式或網域,且設定較為複雜。
最佳做法
為提供最佳使用者體驗和安全性,請在下列接觸點實作無縫的憑證共用功能:
- 登入表單:啟用自動填入憑證功能。
- 註冊表單:安全地儲存新的憑證,以便跨平台使用。
- 密碼變更表單:同步處理所有平台的密碼更新。
- 密碼重設表單:允許單一密碼重設作業更新所有平台。
- 網頁畫面網域:將憑證共用權擴展至應用程式中負責處理帳戶管理 (代管登入、註冊、密碼變更或重設密碼表單) 的網頁畫面網域。
- Android 應用程式
這種做法會建立統一的憑證管理系統,提升使用者的便利性和安全性。
設計帳戶管理網站時,建議您遵循下列帳戶管理網站最佳做法:
設計 Android 應用程式時,建議您將應用程式與 Android Credential Manager 整合。
使用 Play 管理中心設定憑證共用功能
您現在可以直接透過 Play 管理中心啟用憑證整合共用功能,無須發布新版 Android 應用程式。這個方法可透過 Play 管理中心介面管理憑證共用設定,簡化整個程序。
必要條件
使用 Play 管理中心設定憑證共用功能前,請確認您具備下列條件:
- 您需要具備必要的 Play 管理中心權限,才能存取「深層連結」和「應用程式設定」部分。如果您不是帳戶擁有者,請要求 Play 管理中心管理員授予您適當的存取權。
- 能夠按照 Digital Asset Links (DAL) 語法,在各個網域上發布
/.well-known/assetlinks.json
檔案。
為新網域啟用憑證共用功能
如要在 Play 管理中心為新網域設定無縫共用憑證功能,請按照下列步驟操作:
- 開啟 Play 管理中心,然後前往「深層連結」頁面 (依序點選「拓展使用者」>「深層連結」)。
- 在「應用程式設定」分頁中,按一下「新增網域」。
- 輸入網站的網域。
- 開啟「啟用憑證共用功能」切換鈕。
- 複製產生的 JSON 檔案,並在指定位置發布 (
https://YOUR_DOMAIN/.well-known/assetlinks.json
依據協定),或是在現有的 assetlinks.json 檔案中加入相關資訊。 - 按一下「建立網站關聯」。
如果成功,您會返回「深層連結」頁面。
為現有網域啟用憑證共用功能
如要在 Play 管理中心為現有網域設定無縫共用憑證功能,請按照下列步驟操作:
- 選取「應用程式設定」分頁標籤。
- 在「網域」部分的「應用程式設定」下方,按一下「憑證共用」欄中的「開啟」。
- 複製產生的 JSON 檔案,並在指定位置發布 (或在現有的
assetlinks.json
檔案中新增相關資訊)。 - 按一下「開啟憑證共用功能」。
如果成功,您會返回「深層連結」頁面。
僅使用 Digital Asset Link (DAL) 設定憑證共用
如果設定涉及多個應用程式或網站,請使用數位資產連結 (DAL) 手動設定憑證共用功能。
必要條件
設定無縫共用憑證功能前,請確認您已為每個平台完成下列事項:
針對每個 Android 應用程式:
- 應用程式
build.gradle
檔案中宣告的 Android 應用程式 ID。 - 簽署憑證的 SHA256 指紋。
- (建議) 使用 Credential Manager API 實作的使用者登入功能。
針對每個網站:
- 能夠按照 Digital Asset Links (DAL) 語法,在各個網域上發布
/.well-known/assetlinks.json
檔案。 - 所有帳戶管理網域 (登入、註冊、變更密碼或重設密碼表單) 都必須透過 HTTPS 存取。
允許在 Android 應用程式和網站之間流暢共用憑證
如要設定應用程式和網站之間的無縫憑證共用功能,請建立並發布Digital Asset Links 陳述式清單,宣告哪些實體 (網站或 Android 應用程式) 可共用憑證。
如要宣告憑證共用關係,請按照下列步驟操作:
依照 DAL 陳述式清單語法建立
assetlinks.json
檔案,其中包含連結至網站和 Android 應用程式的陳述式:[ { "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 應用程式簽署憑證的 SHA256 指紋。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
為完整限定,且使用 HTTPS 的通訊埠 443 時必須省略OPTIONAL_PORT
。在 Android 應用程式中宣告關聯,方法是在 Android 應用程式的
res/values/strings.xml
檔案中嵌入陳述式,連結至您在步驟 1 中建立的陳述式清單。新增物件,用於指定要載入的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 以便分享憑證的唯一有效方法,但這種做法可簡化日後將新實體新增至無縫憑證分享網路的程序,提升程式碼可重複使用性,並減少更新期間發生錯誤的可能性。