员工身份(EIAM)
动态口令OTP认证
# 文档说明
本文为您介绍Android客户端如何接入OTP认证功能。OTP功能,即在用户中心激活后,可在手机APP或小程序上获取动态口令,保证账号安全。 OTP使用场景下,用户登录进用户中心,进入账号设置,账号安全,动态口令设置,按照页面提示激活动态口令,在下一次登录需要OTP二次认证的地方,使用APP或小程序输入动态口令可完成认证。
# 流程说明
集成流程说明
App客户端构建完成扫一扫页面功能,扫得到的字符串,带入IDaaS SDK添加,添加成功返回到OTP列表。
App客户端构建完成OTP口令列表,使用IDaaS SDK获取目前已添加的OTP口令列表。
App客户端在OTP列表中,每30秒或1分钟到IDaaS SDK查询目前单个OTP的动态口令码,继而刷新列表中单个otp口令。
App客户端在OTP列表中,构建删除单个OTP口令的动画效果,在响应事件中调用IDaaS SDK删除OTP单个口令的方法,并刷新UI。
# 准备工作
登录IDaaS企业中心平台,点击 “设置-->服务配置-->动态口令配置” ,配置口令加密算法,位数和时间间隔。目前SDK支持的算法是HMACSHA1,HMACSHA256H,MACSHA512。
配置完成后点击 “资源-->应用”,找到企业应用并进入应用面板,开启 “访问控制” 开关,在弹出的设置页面,选择二次认证,勾选二次认证方式为OTP。
# 引入依赖包
AuthnCenter_Common-1.5.3.aar //Common 包
AuthnCenter_MFA_OTP-1.5.3.aar //短信登录 sdk
1
2
2
将aar包导入lib,如下图所示:
# 配置build.gradle
implementation 'AuthnCenter_MFA_OTP:1.5.3'
implementation 'com.google.zxing:core:3.5.1'
implementation 'com.google.code.gson:gson:2.10'
implementation 'com.squareup.picasso:picasso:2.8'
implementation 'io.fotoapparat.fotoapparat:library:1.4.1'
1
2
3
4
5
2
3
4
5
# 配置AndroidManifest
<!--权限-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
1
2
3
4
5
6
7
2
3
4
5
6
7
# 开发集成
# SDK初始化
AuthnCenterSDK.Builder()
.init(this)
.setBaseUrl("https://xxx.xxx.com") //租户域名
.setClientId("xxxx") //租户后台应用client-id
.isCheckSSL(false) //是否检测SSL证书
.logEnable(false).build(); //是否打开http请求log 建议上线之后关闭
1
2
3
4
5
6
2
3
4
5
6
# 接口调用说明
生成随机码
TokenPersistence tp = new TokenPersistence(this.getContext());
Token token = tp.get(position);
TokenCode codes = token.generateCodes();
new TokenPersistence(this.getContext()).save(token);
codes.getCurrentCode();//得到code
1
2
3
4
5
2
3
4
5