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

钥匙环服务功能盘点

华为钥匙环服务(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. 环境(8)Linux用户组权限

    一:Linux时间日期-时间同步策略 1.日期与时间 ①时间命令 data:查看当前系统时间 cal :查看日历     cal  2020 修改时间:   date -s  11:11:11    ...

  2. 菜鸡的Java笔记 第十九 - java 继承

    继承性的主要目的,继承的实现,继承的限制                继承是面向对象中的第二大主要特点,其核心的本质在于:可以将父类的功能一直沿用下去                为什么需要继承? ...

  3. 【linux系统】jmeter安装

    安装步骤: 1.下载jmeter安装包  wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.1.tgz 如报错以下,需使 ...

  4. C/C++ Qt 自定义Dialog对话框组件应用

    在上一篇博文 <C/C++ Qt 标准Dialog对话框组件应用> 中我给大家演示了如何使用Qt中内置的标准对话框组件实现基本的数据输入功能. 但有时候我们需要一次性修改多个数据,使用默认 ...

  5. .NET E F(Entity Framework)框架 DataBase First 和 Code First 简单用法。

    EF是微软.NET平台官方的ORM(objet-relation mapping),就是一种对象-关系 映射,是将关系数据库种的业务数据用对象的形式表现出来,并通过面向对象的方式讲这些对象组织起来,实 ...

  6. DVWA总结

    Brute Force,即暴力(破解),是指黑客利用密码字典,使用穷举法猜解出用户口令,是现在最为广泛使用的攻击手法之一,如2014年轰动全国的12306"撞库"事件,实质就是暴力 ...

  7. 我的获奖记录及 Important Dates in OI

    逊逊的获奖记录/ruo(真的没拿过啥奖,并且大部分都集中在初三阶段,即 2020-2021 赛季): NOIP2018 pj,1=,无游记 CSP-S2019,1=,无游记 APIO2020,Ag,游 ...

  8. NOIOL #2 爆零记

    没有假是真的爆零了,原因:万恶的文操.不管怎样写份题解吧. T1: 做题经历:看了下题发现:不是 edu 的原题吗?兴奋地拿出赛中写的程序搞上去. 大约比赛开始 30min 后开始发现 \(k\) 可 ...

  9. 【R】write.table输出数据带有行名?

    目录 问题 解决一 解决二 问题 这个问题应该很常见吧.R中输出数据框时,想要把行名和列名都输出.如果直接输出的话,输出的结果列名会往前移动一位,这显然不是我们想要的. 直接上例子: > a = ...

  10. dlang 字符串char[] 和string

    各个情况下数据类型异同 1 import std.stdio; 2 import std.string; 3 4 void main(){ 5 6 auto a="auto_a"; ...