使用淘系账号的应用将默认享有平台提供的账号安全服务,本服务提供一种透明的帐号风险识别及二次验证的能力。通过对已接入的用户行为日志进行数据分析,并结合阿里海量的风险数据沉淀,实时返回当前帐号的风险情况,同时提供基于短消息的二次身份验证服务。
接入方式
基于帐号密码的登录方式一般交互过程如图1所示:
图1. 没有接入风控系统的登陆过程
接入风控系统后,登录流程如图2所示。绿色框表示服务器端新增的流程。
图2. 接入风控系统的登陆过程
对接准备
由于二次身份验证基于手机短信消息,应用需要提供为帐号绑定、解绑、更换手机号码的功能,补全用户的手机信息。可以参考淘宝帐号管理中的手机绑定解绑功能。几个注意点:
B/S架构对接细节
如图3所示:
图3. B/S架构接入账号风控系统流程图
C/S架构对接细节
如图5所示:
图4. C/S架构二次验证界面效果图
图5. C/S架构接入账号风控系统流程图
用户风险重置
如果有正常用户反馈风险误报,用户又无法通过短信二次验证来自动重置风险时,接入方可以实现一个后台工具,手动调用resetRisk接口来重置对应用户风险。
API调用说明
注意事项
API调用时设定合理的调用超时时间。如果在指定的时间内没有返回,结束HTTP请求,并做容错处理。当API返回结果为调用失败时,也要进行降级处理,保障系统的可用性。API调用中字符串使用utf-8编码。
API调用签名
护城河会给接入方分配appKey、appSecret(与TOP API不一样),调用API 时需要对请求参数进行签名验证,服务器也会对该请求参数进行验证是否合法的。
每个API调用必须提供两个额外的参数:appKey和sign,分别代表护城河appKey和签名,签名的具体方法与TOP调用签名算法一致,具体如下:
根据参数名称(包括appKey)将所有请求参数按照字母先后顺序排序:key + value .... key + value,例如:将foo=1,bar=2,baz=3 排序为bar=2,baz=3,foo=1,参数名和参数值链接后,得到拼装字符串bar2baz3foo1。把secret放到拼装字符串的开始和末尾,形成最后的签名字符串。
注意:参数名称区分大小写;如果参数可能包含&、#等需要做URL转译的字符,参数值的URL encode在在计算签名字符串之后。
hmac:获取拼装字符串的utf-8编码字节序列,采用md5方式加密,再把加密后的字节转化为16进制,格式是:byte2hex(md5(secretkey1value1key2value2... secret))
API返回值
所有API返回json字符串,表示接口调用成功与否,格式如下:
{
"result":"success",
"errMsg":""
}
如果调用成功,result为success,否则为fail。