3

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

 2 years ago
source link: https://segmentfault.com/a/1190000041258427
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

一、 功能盘点

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应用,对此您需要向用户明示并获取其同意;用户在华为设备上使用钥匙环服务则无需单独获取同意。

扫码获取接入指南

了解更多详情>>

访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK