首页 > 架构设计 > 操作系统 > 打造用户认证系统,构筑信息安全防线
在当今的数字化时代,信息安全和用户隐私保护变得越来越重要。用户身份认证是确保信息安全的第一道防线。通过验证用户身份,可以防止未经授权的访问和数据泄露。它有助于保护用户的个人信息、账户资金和其他敏感数据。此外,用户身份认证还可以提高系统的安全性,减少恶意行为和欺诈事件的发生。
HarmonyOS SDK 用户认证服务(User Authentication Kit)提供了基于用户在设备本地注册的锁屏口令、人脸和指纹来认证用户身份的能力,并提供了多设备统一的、集多种认证方式(人脸、指纹、口令)于一体的系统级用户身份认证控件。用户身份认证可用于各种鉴权场景,如应用内账号登录、支付认证等。

在开发具备用户身份认证的应用前,需要先申请权限ohos.permission.ACCESS_BIOMETRIC,应用才能使用生物特征识别能力(如人脸、指纹)进行身份认证。 该权限授权方式为system_grant(系统授权),开发者只需要在module.json5配置文件的requestPermissions标签中声明权限,即可获取系统授权。具体声明指导请参考 申请应用权限-声明权限。
指定认证类型(UserAuthType)和认证等级(AuthTrustLevel),调用getAvailableStatus接口查询当前的设备是否支持相应的认证能力。
认证等级ATL的选择参见下表:

以查询设备是否支持认证可信等级≥ATL1的人脸认证功能为例:
1.指定用户认证相关参数AuthParam(包括挑战值、认证类型UserAuthType列表和认证等级AuthTrustLevel)、配置认证控件界面WidgetParam,调用getUserAuthInstance获取认证对象。
2.调用UserAuthInstance.on接口订阅认证结果。
3.调用UserAuthInstance.start接口发起认证,通过IAuthCallback回调返回认证结果UserAuthResult。
当认证成功时返回认证通过类型(UserAuthType)和令牌信息(AuthToken)。
示例1:
发起用户认证,采用认证可信等级≥ATL3的人脸+锁屏密码认证,获取认证结果:
示例2:
发起用户认证,采用认证可信等级≥ATL3的人脸 + 认证类型相关 + 复用设备解锁最大有效时长认证,获取认证结果:
1.指定用户认证相关参数AuthParam(包括挑战值、认证类型UserAuthType列表和认证等级AuthTrustLevel),获取认证对象UserAuthInstance,并调用UserAuthInstance.start发起认证。
2.通过使用已经成功发起认证的UserAuthInstance对象调用UserAuthInstance.cancel接口取消本次认证。
示例代码为发起认证可信等级≥ATL3的人脸+锁屏密码认证后,取消认证请求:
针对需要切换自定义认证方式的场景,发起认证请求的方式请参考发起认证,但在传入的widgetParam需包含字段navigationButtonText。
当前示例仅展示如何配置界面、选择切换到自定义认证界面,具体拉起的页面及对应页面的实现,请开发者自行实现,代码插入位置可参考注释提示。
指定认证类型(UserAuthType),调用getEnrolledState接口查询用户注册凭据的状态。
以查询用户人脸注册凭据的状态为例:
了解更多详情>>
访问 用户认证服务联盟官网
获取 用户认证服务开发指导文档
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70003787/viewspace-3079435/ ,如需转载,请注明出处,否则将追究法律责任。