评论

收藏

[Android] 3分钟了解如何跨应用、跨形态无缝登录

移动开发 移动开发 发布于:2022-01-13 11:58 | 阅读数:316 | 评论:0

DSC0000.jpg

一、功能盘点
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或网站的真实身份,防止凭据被仿冒的程序或网站盗用,从而加强共享凭据过程中的安全性。
三、【钥匙环服务小课堂】隐私政策问答
DSC0001.jpg

Q1:钥匙环服务符合用户隐私政策吗?
A:符合,关于 HMS Core 与隐私的声明中已对钥匙环服务自身的隐私声明约束做出说明。
Q2:我的App是否需要告知用户帮助TA保管凭证?
A:使用钥匙环服务过程中,用户凭据始终保存在用户设备本地,不上传服务器,用户仍是实际数据控制者,华为不能主动对用户凭据做修改、删除等影响凭据安全的操作,其次HMS Core隐私声明已做过说明,故您的App不需要再告知用户。
Q3:非华为设备上使用钥匙环服务,我的App是否需要获取用户同意?
A:当用户在非华为设备上使用钥匙环服务时,会关联启动HMS Core应用,对此您需要向用户明示并获取其同意;用户在华为设备上使用钥匙环服务则无需单独获取同意。
扫码获取接入指南 DSC0002.png
了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~


   
   
   
                        

关注下面的标签,发现更多相似文章