一、 功能盤點
Q1:什麼是鑰匙環服務?
A:鑰匙環服務是HMS Core對國內外開發者開放的技術服務,提供使用者認證憑據本地儲存,和跨應用、跨形態共享能力,幫助使用者在安卓應用、快應用、Web應用之間構建無縫登入體驗。(“使用者認證憑據”以下簡稱“憑據”)
跨應用登入示例
使用者在已登入應用A的狀態下,開啟同一開發者旗下的應用B,無需輸入帳號密碼,實現直接登入應用B.
跨形態登入示例
以電商應用為例,使用者在安卓應用登入之後,收到促銷簡訊,用華為瀏覽器點開簡訊連結,Web應用直接處於登入狀態,挑選心儀商品直接付款,完成下單。
Q2:鑰匙環服務可以幫助我的使用者在任意兩款App之間共享使用者認證憑據嗎?
A:鑰匙環服務能夠幫助使用者在同一公司旗下開發的App之間共享憑據
Q3:憑據在應用之間的授權關係是可以繼承,還是隻能點對點授權?
A:沒有繼承關係,只能點對點的授權,例如,A授權給B、C、D、E,B不能轉授權給F、G。
Q4:如果我的使用者需要退出帳號,可以在鑰匙環服務中刪除憑據嗎?
A:可以,鑰匙環服務向開發者提供刪除和更新的API。
Q5:如果我的使用者擁有多個帳號,這種情況鑰匙環服務如何識別用哪個帳號登入?
A:鑰匙環服務可以儲存多個憑據,建議產品提供確認介面,讓使用者自主選擇登入帳號。
二、 技術深入解讀
Q1:鑰匙環服務是如何將憑據從安卓應用共享到快應用的?
A:當使用者登入到您的應用之後,憑據將被儲存在鑰匙環服務中,已登入的應用將這些憑據授權共享給其它受信任的快應用或web應用。
Q2:鑰匙環服務是怎麼實現支援這麼多應用形態的?
A:對於不同的應用形態,鑰匙環服務提供對應的介面:鑰匙環服務為安卓應用提供Android API,為快應用提供快應用API,為Web應用提供Web API。
Q3:把我的使用者憑據儲存在鑰匙環服務中,安全嗎?
A:憑據在可信執行環境(TEE)中隨機生成的金鑰進行加密,每個裝置的金鑰均不相同,而且金鑰只能在TEE內使用,無法離開裝置,華為也不掌握金鑰的內容,支援憑據在本地安全儲存。
Q4:應用儲存憑據之後,使用者下次直接處於登入狀態時,會有提示嗎?
A: 鑰匙環服務SDK提供無介面的憑據讀取介面,安卓應用可以直接讀取到憑據內容,您可以自行決定是否提示使用者:以某應用的帳號登入。
Q5:鑰匙環服務如何驗證請求讀取憑據的應用身份資訊,怎麼確定不是仿冒應用呢?
A:鑰匙環服務能夠通過驗證安卓應用的APK包名、快應用的包名和證書HASH,或者獲取當前網頁的真實URL作為身份資訊等方式,認證讀寫憑據的APK或網站的真實身份,防止憑據被仿冒的程式或網站盜用,從而加強共享憑據過程中的安全性。
三、隱私政策問答
Q1:鑰匙環服務符合使用者隱私政策嗎?
A:符合,關於 HMS Core 與隱私的宣告中已對鑰匙環服務自身的隱私宣告約束做出說明。
Q2:我的App是否需要告知使用者幫助TA保管憑證?
A:使用鑰匙環服務過程中,使用者憑據始終儲存在使用者裝置本地,不上傳伺服器,使用者仍是實際資料控制者,華為不能主動對使用者憑據做修改、刪除等影響憑據安全的操作,其次HMS Core隱私宣告已做過說明,故您的App不需要再告知使用者。
Q3:非華為裝置上使用鑰匙環服務,我的App是否需要獲取使用者同意?
A:當使用者在非華為裝置上使用鑰匙環服務時,會關聯啟動HMS Core應用,對此您需要向使用者明示並獲取其同意;使用者在華為裝置上使用鑰匙環服務則無需單獨獲取同意。
掃碼獲取接入指南
瞭解更多詳情>>
訪問華為開發者聯盟官網
獲取開發指導文件
華為移動服務開源倉庫地址:GitHub、Gitee
關注我們,第一時間瞭解 HMS Core 最新技術資訊~