在互联互通的场景驱动下,同一开发者旗下常常拥有多款应用或者多个应用形态,用户在同一设备的不同应用或端口登录时,即便使用同一帐号,仍需要重复输入密码进行验证,操作复杂,直接影响到用户的使用体验,而华为钥匙环服务的出现则有效地解决了这一问题。

钥匙环服务功能盘点

华为钥匙环服务(Keyring)为开发者提供全生命周期的凭据管理能力,包括对凭据进行获取、加密存储、授权共享、查询读取、删除等等,保障开发者的业务流畅性。

1.本地加密存储

使用钥匙环服务所获取的凭据在可信执行环境(TEE)中可以随机生成密钥,然后再进行加密,每个设备的密钥均不相同,而且密钥只能在TEE内使用,无法离开设备,华为也不掌握密钥的内容,支持凭据在本地安全存储。保存凭据时,开发者还可以设置读取此凭据的内容时是否通过锁屏密码或生物特征认证用户的身份。

1.凭据共享授权

钥匙环服务能够提供同一团队开发的App之间授权共享凭据的能力,被授权使用凭据的应用可以是Android应用、快应用或者Web应用。

用户在下次进行登录操作时,应用在钥匙环服务中查找可用的凭据。查找到的凭据可能是本应用存储的凭据,也可能是其它应用授权给本应用使用的凭据。

1.保障数据安全

除此之外,使用钥匙环服务,共享凭据过程中的安全性也能够得到保障。钥匙环服务通过验证安卓应用的APK包名、快应用的包名和证书哈希,或者获取当前网页的真实URL作为身份信息等方式,认证读写凭据的APK或网站的真实身份,防止凭据被仿冒的程序或网站盗用。

1.凭据删除或更新

钥匙环服务向开发者提供删除和更新凭据的API。如果用户需要退出应用帐户,相应的认证凭据也将从钥匙环服务中删除。

应用场景

跨形态登录

同一应用App在移动端的入口呈现多样化的分布趋势,用户在不同的应用形态之间来回切换,反复登录,导致体验割裂。而钥匙环服务对于不同的应用形态提供了不同的接口,包括钥匙环服务SDK、快应用API和Web API,支持跨应用形态共享用户认证凭据。

以电商购物类应用为例,节假日促销短信推送是我们最常用的营销方式之一,也普遍被用户所接受。用户在安卓应用登录之后,点开促销短信中的链接,在华为浏览器中打开Web应用,直接处于登录状态,无需重复登录即可完成下单。

跨应用登录

在业务发展过程中,同一个团队往往会开发多个App,新应用上架之后,获得用户并非易事。针对全新业务场景的应用,钥匙环服务会为其提供一条畅通无阻、高效便捷的桥梁,将流量从原有的应用当中引进来,用户无需重复输入帐号密码,只要一键授权,就可以实现无缝登录。

也就是说,用户在应用A已登录,安装同一开发者旗下的新应用B,无需输入帐号密码,能使用登录应用A的帐号,实现直接登录应用B。

帐号易切换

钥匙环服务还可以存储多个凭据,如果用户在某一应用登录过多个帐号,应用可以提供确认页面,让用户自主选择某个帐号登录,操作便捷。当然了,作为开发者,您可以选择在用户登录之前,验证用户的生物特征或者锁屏密码,有效规避帐号被冒用等安全隐患。

商业价值

钥匙环服务的跨应用登录场景将帮助同一开发者旗下的关联应用之间共享流量,助力孵化新产品。同时实现流量在安卓应用、快应用、Web应用之间的双向流转。通过创造一处登录,处处登录的无缝登录体验,钥匙环服务帮助开发者缩短用户的交互转化路径,降低登录操作的复杂度,进一步提升导流转化率。总之,钥匙环服务是助力开发者获得商业成功的利器。

总体来看,华为钥匙环服务具有便捷登录、安全无忧、流量共享等核心优势,可以帮助开发者快速满足用户在购物、出行、社交、阅读等多个使用场景下的安全需求。

之后,华为钥匙环服务还会推出其他特性,HMS Core也将在安全领域开放新的能力,为开发者们带来更优质的服务和体验。

更多精彩内容,请见华为开发者官方论坛→https://developer.huawei.com/consumer/cn/forum/home?ha_source=sanfang

全面解析 | 钥匙环服务的应用场景&商业价值的更多相关文章

  1. Dubbo原理和源码解析之服务暴露

    github新增仓库 "dubbo-read"(点此查看),集合所有<Dubbo原理和源码解析>系列文章,后续将继续补充该系列,同时将针对Dubbo所做的功能扩展也进行 ...

  2. 【HMS Core 6.0全球上线】华为钥匙环服务,打造跨应用跨形态无缝登录体验

    华为钥匙环服务(Keyring),是HMS Core在安全领域开放的全新服务,为全球开发者提供用户认证凭据(以下简称"凭据")本地存储和跨应用.跨形态共享能力,帮助您在安卓应用.快 ...

  3. Netty 4源码解析:服务端启动

    Netty 4源码解析:服务端启动 1.基础知识 1.1 Netty 4示例 因为Netty 5还处于测试版,所以选择了目前比较稳定的Netty 4作为学习对象.而且5.0的变化也不像4.0这么大,好 ...

  4. 探索解析微服务下的RabbitMQ

    概览 本文主要介绍如何使用RabbitMQ消息代理来实现分布式系统之间的通信,从而促进微服务的松耦合. RabbitMQ,也被称为开源消息代理,它支持多种消息协议,并且可以部署在分布式系统上.它轻量级 ...

  5. 基于OpenSIPS做注册服务下,场景A打B,一方发起BYE挂断后收到500,另一方无法挂断的问题

    基于OpenSIPS做注册服务下,场景A打B,一方发起BYE挂断后收到500,另一方无法挂断的问题     最近在工作中遇到一个看似很奇怪的,排除起来很费劲,但最后的解决方式又及其简单的问题,下面我们 ...

  6. 无服务计算应用场景探讨及 FaaS 应用实战

    作者 | 宋文龙(闻可)  阿里云全球技术服务部高级交付专家 什么是无服务计算 无服务器计算(Serverless Computing)在构建和运行应用时无需管理服务器等基础设施.它描述了一个细粒度的 ...

  7. C#二次开发BIMFACE系列60 File Management文件管理服务及应用场景

    系列目录     [已更新最新开发文章,点击查看详细] 在我的博客<C#二次开发BIMFACE系列>教程中详细介绍了如何注册BIMFACE.测试.封装服务器端接口并提供了丰富的Demo.视 ...

  8. Dubbo原理和源码解析之服务引用

    一.框架设计 在官方<Dubbo 开发指南>框架设计部分,给出了引用服务时序图: 另外,在官方<Dubbo 用户指南>集群容错部分,给出了服务引用的各功能组件关系图: 本文将根 ...

  9. 吴太银:华为消费者云服务Cassandra使用场景与最佳实践

    大家好,我是华为消费者云的吴太银. 我今天分享的主要是华为消费者云服务使用Cassandra的应用场景和最佳实践.我这个可能跟其他嘉宾分享的不太一样,因为前几个嘉宾讲的实际上对Cassandra原生的 ...

随机推荐

  1. spring笔记-MultiValueMap

    即一个键对应多个值,Spring的内部实现是LinkedMultiValueMap MultiValueMap接口 一键多值的使用场景是比较多的,在使用该数据结构之前,通常会自己定义 Map<K ...

  2. More Effective C++笔记(一)(精心整理)

    一.基础议题 条款1:仔细区别pointers和references 指针使用*和->,引用使用"." 引用必须指向一个已初始化的对象,不能为null,而指针可以指向某个对象 ...

  3. 手把手教你学Dapr - 9. 可观测性

    目录 手把手教你学Dapr - 1. .Net开发者的大时代 手把手教你学Dapr - 2. 必须知道的概念 手把手教你学Dapr - 3. 使用Dapr运行第一个.Net程序 手把手教你学Dapr ...

  4. 算法学习->整数拆分问题

    动态规划典型题目/ 00 题目 将正整数n无需拆分为最大数为k的拆分方案有多少种?​要求所有的拆分方案不重复. 示例: 输入:n=5,k=5 输出:(5,5)=7 示例分析: 5=5 5=4+1 5= ...

  5. SpringCloud微服务实战——搭建企业级开发框架(二十三):Gateway+OAuth2+JWT实现微服务统一认证授权

      OAuth2是一个关于授权的开放标准,核心思路是通过各类认证手段(具体什么手段OAuth2不关心)认证用户身份,并颁发token(令牌),使得第三方应用可以使用该token(令牌)在限定时间.限定 ...

  6. Python描述符以及Property方法的实现原理

    Python描述符以及Property方法的实现原理 描述符的定义: 描述符是什么:描述符本质就是一个新式类,在这个新式类中,至少实了__get__(),__set__(),__delete__()中 ...

  7. Go知识点大纲

    目录 1. 基本介绍 2. 安装及配置 3. 变量 4. 常量 5. 数据类型 5.1 numeric(数字) 5.2 string(字符串) 5.3 array(数组) 5.4 slice(切片) ...

  8. mysql—mysql查询语句提示Unknown column ‘xxx’ in ‘where clause’

    运行结果中提示Unknown column 'xxx' in 'where clause'的问题.经过大神的指导,顿时明白其中缘由,如果sql中定义的类型是int型的可以不用加引号,但是如果是字符串类 ...

  9. jQuery ajax常用示例

    总结一下jQuery ajax常用示例 $.ajax({ type: "post", //类型get,post url: urls, //链接地址 data:{"id&q ...

  10. mvc中常见的属性验证

    客户端验证逻辑会对用户向表单输入的数据给出一个即时反馈.而之所以需要服务器端验证,是因为来自网络的信息都是不能被信任的. 当在ASP.NET MVC设计模式上下文中谈论验证时,主要关注的是验证模型的值 ...