文档中心 > 阿里聚安全

风控-android接入指南

一、综述

阿里聚安全数据风控由阿里聚安全提供,是基于阿里大数据计算能力,通过业内领先的风险决策引擎,解决企业账号、活动、交易等关键业务环节存在的欺诈威胁,降低企业经济损失。

二、数据风控主流程

2.1 风险识别与验证

  1. 风险采集

    1. 用户APP调用风控SDK获取系统环境信息wtoken. 参考调用 ios, android
    2. 用户APP上传wtoken至用户后端服务器
  2. 风险识别

    1. 用户后端服务器将业务数据wtoken至聚安全服务器
    2. 聚安全服务器返回风险识别结果建议的验证方式。 参考 注册 登录 活动 修改信息
    3. 用户后端服务器返回验证方式验证方法所需的入参数据至用户APP

  3. 风险客户端验证
    1. 用户APP调用风控SDK启动风险验证 ios android
    2. 风控SDK响应验证结果验证会话ID(sessionId)至用户APP
  4. 风险服务端验证

    1. 用户APP上传验证会话ID(sessionId)至用户后端服务器
    2. 用户后端服务器请求验证会话ID(sessionId)至聚安全服务器 验证API alibaba.security.jaq.captcha.verify.result.fetch
    3. 聚安全服务器返回(二次确认的)验证结果至用户后端服务器
    4. 用户后端服务器返回(二次确认的)验证结果至用户APP
    5. 用户APP根据(二次确认的)验证结果执行相应业务逻辑

2.2 风险验证

  1. 风险客户端验证

    1. 用户APP调用风控SDK启动风险验证 ios android
    2. 风控SDK响应验证结果验证会话ID(sessionId)至用户APP
  2. 风险服务端验证

    1. 用户APP上传验证会话ID(sessionId)至用户后端服务器
    2. 用户后端服务器请求验证会话ID(sessionId)至聚安全服务器 验证API alibaba.security.jaq.captcha.verify.result.fetch
    3. 聚安全服务器返回(二次确认的)验证结果至用户后端服务器
    4. 用户后端服务器返回(二次确认的)验证结果至用户APP
    5. 用户APP根据(二次确认的)验证结果执行相应业务逻辑

三、接入流程

本文档支持应用类型为:Android 应用的风险防控功能接入,接入整体流程:

  1. 接入申请

  2. 系统配置

  3. 确认发布

四、接入申请

1. 点击申请企业用户,若您已经是企业用户,则可以跳过这一步。

注意:

填写API ID这一栏时,建议填写您公司名称或相关产品名称,便于后续管理。

2. 进入聚安全管理后台,点击数据风控,选择需要的功能,点击“立即接入”按钮:

3. 新建应用,或者选择一个已经创建的应用,输入应用信息,点击“下一步”按钮,其中:

  1. 所需服务内容选择:“风险查询、识别” 或者 “风险查询、识别、拦截”;

  2. 接入方式选择:“移动客户端风险防控(SDK集成)”且实际接入应用为Android类型应用。

五、SDK集成

注意事项

  1. 出于对应用数据安全考虑,聚安全生成的SDK会与应用强绑定。如果此前使用Debug版应用 生成SDK需要在应用发布前使用Release版应用重新上传,并替换原有SDK。

  2. 与阿里原有sdk兼容问题

    聚安全SDK在阿里巴巴的很多开放的SDK中也有包含,如果你的APK中同时引入了这些SDK,则在集成聚安全SDK之前需要将这些SDK(TAE,支付宝等)中包含的安全组件(.jar、.aar文件)、图片文件0335图片替换。**这部分如果不清楚,最好联系客服**

  3. 5.2, 5.3, 5.4 开发者不同开发环境采用导入sdk的方案。开发者根据需要选择其中一种

5.1 生成SDK

  1. 上传Release版APK;
  2. 点击“生成SDK”按钮,生成SDK;
  3. 生成完SDK后,SDK自动下载到本地;

5.2 Eclipse导入JAQSdk

  1. 解压缩 verificationsdklib-1.3.0.****-3ND-SMS-NC-jar.tgz看到jaqsdk
  2. 解压缩 Android.NoCaptchaSDK.5.3.21.tar.gz
    Android.SecurityBodySDK.5.3.27.tar.gz
    Android.SecurityGuardSDK.5.3.38.tar.gz拷贝到应用的jaqsdk/libs目录下
    • NoCaptchaSDK-5.3.21.jar
    • SecurityBodySDK-5.3.27.jar
    • SecurityGuardSDK-5.3.38.jar
    • 以及所有so文件
      最后目录显示如下
    verificationsdklib-1.3.0.2091734-3ND-SMS-NC.jar
    NoCaptchaSDK-5.3.21.jar		
    armeabi
    SecurityBodySDK-5.3.27.jar	
    verificationsdklib.aar
    SecurityGuardSDK-5.3.38.jar	
    x86
  3. File->Import 导入项目

    image

    JAQSDK目录导入项目

    image

  4. Project->Properties->Android 加入依赖
    image

  5. 将JAQSDK中AndoridManifest.xml Activity和Permission相关加入主项目的AndoridManifest.xml 加入依赖

    添加权限信息

    需要在`AndroidManifest.xml`文件中添加下列权限配置:
    
    
    <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.WRITE_SETTINGS" />
        <uses-permission android:name="android.permission.BLUETOOTH" />
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

    AndroidManifest.xml 加入验证SDK入口Activity声明

    <activity android:name="com.alibaba.verificationsdk.ui.VerifyActivity"
            android:screenOrientation="portrait" 
            android:theme="@android:style/Theme.NoTitleBar"
            android:windowSoftInputMode="adjustResize" >
        </activity>

5.3 Andorid Studio导入JAQSdk

  1. 解压缩 verificationsdklib-1.3.0.****-3ND-SMS-NC-jar.tgz看到jaqsdk
  2. 解压缩 Android.NoCaptchaSDK.5.3.21.tar.gz
    Android.SecurityBodySDK.5.3.27.tar.gz
    Android.SecurityGuardSDK.5.3.38.tar.gz引入SDK包中文件,拷贝到应用的jaqsdk/libs目录下
    • NoCaptchaSDK-5.3.21.jar
    • SecurityBodySDK-5.3.27.jar
    • SecurityGuardSDK-5.3.38.jar
    • 以及所有so文件

    最后目录显示如下

    verificationsdklib-1.3.0.2091734-3ND-SMS-NC.jar
    NoCaptchaSDK-5.3.21.jar		
    armeabi
    SecurityBodySDK-5.3.27.jar	
    verificationsdklib.aar
    SecurityGuardSDK-5.3.38.jar	
    x86
  3. 通过File->New->Import Module 导入项目

    image

  4. 引用module

    • 通过界面 Open Moudle Settings 导入库
      image
    • 然后检查自己项目 build.gradle 中加入对 JAQSDK 的依赖
    dependencies {
        ......
        compile project(':JAQSDK')
    }

5.4 Andorid Studio导入aar

  1. 如图把所有的aar都复制到项目的libs目录下,然后在该Modulebuild.gradle中增加如图配置:
    dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.+'
    compile name: 'NoCaptchaSDK-external-release-5.3.21', ext: 'aar'
    compile name: 'SecurityBodySDK-external-release-5.3.27', ext: 'aar'
    compile name: 'SecurityGuardSDK-external-release-5.3.38', ext: 'aar'
    compile name: 'verificationsdklib', ext: 'aar'
    }

5.5 关于so文件,平台兼容

在使用导入时,一次会导入所有平台的so。对于开发者需要检查是否某些平在自己App未曾使用。对于未曾使用可以删除相应的目录

5.6 关于图片

如果 5.1或者5.2安全图片已经放置在导入项目的drawable目录,可以跳过1,2步骤请关注3

  1. 解压4.1生成SDK中生成的SDK,获得文件:yw_1222_*.jpg

  2. 把这个文件导入到工程中res\drawable\目录下,如果没有这个文件夹,请先创建,如下图:

    左图为AndroidStudio中安全加密图片位置,右图为Eclipse中安全加密图片位置;

  3. 如果开启混淆要检查发布包335大小不为0, shrinkResources true会导致yw_1222_0335以及yw_1222图片为0

    release {
                minifyEnabled true // 是否混淆
                shrinkResources true // <<<会导致335或者122图片为0
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }

    解决方案一

    放弃资源压缩

    解决方案二
    参考google 关于shrink resource

    新建 res/raw/keep.xml后加入如下内容

    <?xml version="1.0" encoding="utf-8"?>
    <resources xmlns:tools="http://schemas.android.com/tools"
        tools:keep="@drawable/yw_1222_0335, @drawable/yw_1222"/>

    保留文件规则简单介绍,资源文件相对路径加上图片文件名(不需要扩展名)
    执行 ./gradlew clean assembleRelease –info|grep “Skipped unused resource” 观察是否安全图片给压缩同时检查解压缩后文件是否为0

5.7 关于混淆

  • 如果设置资源压缩 shrinkResources true

    参考导入图片的处理,防止安全图片被压缩为0字节

  • 配置proguard-rules.pro

    -keep class com.taobao.securityjni.**{*;}
    	-keep class com.taobao.wireless.security.**{*;}
    	-keep class com.ut.secbody.**{*;}
    	-keep class com.taobao.dp.**{*;}
    	-keep class com.alibaba.wireless.security.**{*;}
    	-keep class com.alibaba.verificationsdk.**{*;}
    	-keep interface com.alibaba.verificationsdk.ui.IActivityCallback

六、开发指南

6.1 android详细文档 进入

  1. SDK初始化 接口详情

    初始化负责完成整个聚安全安全组件的全局初始化。初始化是线程安全的,初始化调用只需要进行一次,无需重复调用;

  2. 获取数据风控wtoken 接口详情

    获取wtoken后,服务端用wtoken为入参调用风险识别或者对应的风险策略以及客户端下一步调用需要的入参

    使用场景:在需要使用数据风控的场景,如注册、登陆、活动页面,可以在用户点击“注册”、“登陆”等业务按钮、业务逻辑处理前获得该token;

  3. 启动风险验证时 接口详情

    使用场景:在需要使用验证码的场景,如注册、登陆、活动页面,可以直接启动验证码进行验证.

6.2 服务端 API 更多

七、确认发布

  1. 用户完成系统配置,即系统程序调试通过后,点击“下一步”;

  2. 请review接入的内容,确认无误后,点击“发布”;

  3. 发布后,应用正式上线运行。

八、反馈及联系

若在接入过程中有任何问题,可及时通过聚安全官网提交反馈。

  1. 电子邮箱:mobilesecurity@service.alibaba.com

  2. 客服旺旺:1435906194

  3. 在线客服(工作日9:00-18:00)

FAQ

关于此文档暂时还没有FAQ
返回
顶部