业务安全风控AFD

    登录保护API

    概述

    登录保护API是基于业务场景,结合IP画像、设备指纹、黑卡检测、威胁情报等多维度信息实时识别风险的专业防护产品,有效识别和解决垃圾账号注册、账号隐私泄漏、暴力破解、拖库撞库、漏洞注入等安全隐患。

    如果您是初次调用百度智能云产品的API,可以观看API入门视频指南,快速掌握调用API的方法。

    接口规范

    URL

    项目 解释
    地址 https://afd.baidubce.com/rcs/sync
    说明 根据输入参数给出作弊风险;请求和响应中所有的文本都使用UTF-8编码
    请求方式 Https POST

    认证机制

    所有API的安全认证一律采用Access Key与请求签名机制。 Access Key由Access Key ID和Secret Access Key组成,均为字符串。 对于每个HTTP请求,使用下面所描述的算法生成一个认证字符串。提交认证字符串放在Authorization头域里。服务端根据生成算法验证认证字符串的正确性。 认证字符串的格式为:
    bce-auth-v{version}/{accessKeyId}/{timestamp}/{expirationPeriodInSeconds}/{signedHeaders}/{signature}

    • version是正整数。
    • timestamp是生成签名时的UTC时间。
    • expirationPeriodInSeconds表示签名有效期限。
    • signedHeaders是签名算法中涉及到的头域列表。头域名之间用分号(;)分隔,如host;x-bce-date。列表按照字典序排列。(本API签名仅使用host和x-bce-date两个header)
    • signature是256位签名的十六进制表示,由64个小写字母组成。

    当百度智能云接收到用户的请求后,系统将使用相同的SK和同样的认证机制生成认证字符串,并与用户请求中包含的认证字符串进行比对。如果认证字符串相同,系统认为用户拥有指定的操作权限,并执行相关操作;如果认证字符串不同,系统将忽略该操作并返回错误码。

    鉴权认证机制的详细内容请参见鉴权认证机制

    入参(JSON格式)

    参数 说明 类型 是否必需
    sc 业务场景标识,登录保护场景为:account_login String 必选
    ts 用户发起请求的时间戳 (单位毫秒) String 必选
    ip 用户登录的ip String 必选
    userid 用户登录的账号id,唯一标识即可 String 必选
    m 登录手机号 (sha1密文) String 必选
    username 账户昵称 String 选填
    email 登录邮箱地址 String 选填
    app 登录时的系统类型信息:android、ios、universe(h5、PC流量请选择此项) String 必选
    appid 应用app唯一标识,您可以在业务安全控制台-应用管理自行创建。测试应用可联系接口人线下颁发 。 String 必选
    aid 行为活动id ,您可以通过业务安全控制台-活动管理自行创建。测试活动id可联系接口人线下颁发 String 必选
    z 百度昊天SDK获取的zid。为了达到更好的防刷效果,建议您集成。集成后此参数为必选 String 可选
    i imei号 String 可选
    mac MAC地址 String 可选
    idfa IDFA(IOS) String 可选
    idfv IDFV(IOS) String 可选
    ver app版本号 String 可选
    model 设备类型,型号(eg: Lenovo A850) String 可选
    ua 调用活动api使用的user_agent String 可选
    bssid wifi_bassid base64加密 String 可选
    ssid wifi_ssid wifi名称,base64加密 String 可选
    loginType 登录方式:password(密码登录)、sms(短信登录)、onepass(一键登录)、 other(其他) String 可选
    loginAccType 登录账户类型:mobile、userid、email、 username、other String 可选
    rts 该账号注册时间戳(单位毫秒) String 可选
    rip 该账号注册时的ip String 可选
    lr 登录是否成功(1为是,0为否) String 可选
    fr 登录失败原因,请从如下类型中选择:wrongPassword, wrongUserName, other) String 可选
    lal 格式:经度,纬度(如:39.5779308800,116.5054730800 ) String 可选
    sv 若业务方在登录环节有安全验证码,标识是否通过安全验证。(1为是,0为否) String 可选
    referer 调用活动api的 referer String 可选
    net 网络类型:3G/4G/5G/wifi等 String 可选
    to 集成H5安全SDK必选参数,获取方式见JavaScript安全SDK文档 String 可选
    vw 集成H5安全SDK必选参数,获取方式见JavaScript安全SDK文档 String 可选
    extra Map格式,用于针对一些特殊形式的活动需要增加扩展参数时可使用此预留字段,格式如下:{“key1”:”value1”,”key2”:”value2”,”key3”:”value3”}。如果当前活动有组队等形式,可以在extra中增加{“groupid”:”xxxxxxx”} String 可选

    接入参数举例

        { 
          "sc":"account_login"
          "ts": "1584871823371",
          "m": "3fae11dea7c6543266d1ce4183d7826e2d494afb",
          "ip": " 125.124.234.121",
          "userid":"1111111",
          "username":"小快乐",
          "email":"www@xxx.com",
          "app":"android",
          "appid":"1",
          "aid":"9999",
          "z":"at8TermQ1qVdEokgqxb1LpiGdDDIHv258FKGKh9U3liFHWQhyC_1NsXRYV6avhaUjvaAWmYs4agXcnG1T8jvMuA",
          "i": "863811016480000",
          "imsi": 460023192787105,
          "loginType":"sms",
          "loginAccType": "mobile",
          "userId": "111111",
          "ver":"11.10.2",
          "ssid":“JXU2MjExJXU1QkI2JXU3Njg0d2lmaQ==”,
          "bssid":"RkYlM0FGRiUzQUZGJTNBRkYlM0FGRiUzQUZG",
          "model":“SM-A8050”,
          "ua":"Dalvik/2.1.0 (Linux; U; Android 9; Redmi Note 8 Pro MIUI/V10.4.6.0.PGGCNXM)",
          "mac": "34:17:EB:CE:A3:86",
          "net": "4G",
          "to": "20$504815761154628458843653317415879759920155241dd15bbfd3b9970455e194d8134bd74885e443328ee707dcf832203015811ceeae1c1a9421576115466546",
          "vw": "021170450480000000000000000000000000000000000000000000008401ff8003757CA66B1FC32998AFFCCDD68DBACC4B2:FG=10000000000000"
        }

    响应结果

    正常返回结果(正常返回结果是一个json)

    字段名 类型 描述
    request_id String 服务端请求ID
    ret_code String 0
    ret_msg String 操作成功
    ret_data Map 风险详情
    -- level String 1:高风险(建议拦截,并进行高级身份认证)
    2:中风险(建议拦截、或做一些简单身份验证)
    3:低风险(建议放行)
    4:极低风险(建议放行)
    -- t Array 风险标签

    正常返回示例:

     {
        "request_id": "f88150bf-9da1-41fc-a740-b896be20cc31",
        "ret_code": "0",
        "ret_data": {
            "level": "1",
            "t": [
                "XXXX"
            ]
        },
        "ret_msg": "操作成功"
    }

    异常返回结果

    字段名 类型 描述
    request_id String 服务端请求ID
    ret_code String 错误码:
    0-正常
    1000-签名验证错误
    1001-认证失败
    1002-请求格式错误
    2000-参数不合法
    2001-消息体不正确
    2002-服务超过最大QPS/服务超过最大调用次数/服务已过期
    3000-系统内部错误
    其他错误码请参见:鉴权认证机制错误码
    ret_msg String 出错信息

    异常返回示例:

     { 
        "request_id":"4017678614",
        "ret_code":"1001",
        "ret_msg":"认证失败"
    }

    SDK调用指南

    上一篇
    注册保护API
    下一篇
    渠道反作弊API