AD用户名+密码登录
AD用户名密码登录接口调用过程中,根据配置返回不同结果,正常调用成功会返回用户的session_token,开启密码过期检查会返回state_token,失败返回失败信息。
AD认证包含如下的场景
- 单AD认证
- 多AD认证
- 基于云桥的AD认证
- 认证过程中根据AD用户新建IDaaS用户
- 认证过程中根据AD用户修改IDaaS用户
- 认证过程中强制修改密码
- AD认证之后二次认证
请求说明
请求头
| 参数名 | 中文名称 | 必须 | 类型 | 示例 |
|---|---|---|---|---|
| X-operating-sys-version | 调用方客户端操作系统版本 | 是 | String | windows10.1.1 |
| X-device-fingerprint | 调用方客户端设备指纹 | 是 | String | 156aysdna213sc50 |
| X-device-ip | 调用方客户端IP | 否 | String | 192.168.1.2 |
| X-agent | User-Agent信息 | 是 | String | Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) |
| X-L | 用于国际化语言设置 | 否 | String | zh |
| X-client-id | 应用授权ID | 是 | String | nTo1eRIub60vPb54WeE6aojPwYwImtl4 |
| content-type | 内容格式类型 | 是 | String | application/json |
请求示例
json
{
"user_name":"test01",
"password":"123456"
}请求参数
| 参数名 | 中文名称 | 必须 | 类型 | 描述 |
|---|---|---|---|---|
| user_name | 用户名 | 是 | String | 用户名 |
| password | 密码 | 是 | String | 密码 |
返回示例
成功示例1(成功匹配用户返回session_token)
HTTP/1.1 200 OK
json
{
"session_token": "jyCWa5wKw7Mx6uhznyh26JD3kJLq94l1",
"expire": 604800,
"id_token": "eyJraWQiOiJlMDhlN2FmZTcxZWQ0N2M3YmI2OTE0YmZlNjY4ZDUxNyIsImFsZyI6IlJTMjU2In0.eyJpc3MiOiJodHRwczovL2Jzb25nMmUuYWxwaGEuY29tL2FwaS92MS9vYXV0aDIiLCJhdWQiOiJuUVN5Z2trdXhlOGMyY0hla0FkcU91eTczVmVQbm8xZyIsImV4cCI6MTcxNTA3OTk5MSwianRpIjoiVGdaOHJmc2pBbzJ4UjFSaldDeE52QSIsImlhdCI6MTcxNTA3Mjc5MSwibmJmIjoxNzE1MDcyNjcxLCJzdWIiOiIyMDI0MDUwNzE1NDQyMTU2Ni01NkFDLTdEMDdBOUVENiIsIm5hbWUiOiLlrovpnZnms6IiLCJtb2JpbGUiOiIiLCJpZCI6IjIwMjQwNTA3MTU0NDIxNTY2LTU2QUMtN0QwN0E5RUQ2IiwidXNlck5hbWUiOiJib2IiLCJlbWFpbCI6IiIsInVzZXJJZCI6IjIwMjQwNTA3MTU0NDIxNTY2LTU2QUMtN0QwN0E5RUQ2In0.gkKt23WGvmC1affeTzdLTF1D17StLjd3e1ohxZelygMyQBoKTkk81vTEA4R6V7IkL1YlF_-aj0RD9zjjtz1Mj1Yk4cK5p1DkHhzsfvDp_SKN3a9cac51nGhOpTrWkjptnkhVEhy6BxPLTDQULYcIrK33yiX852RTIQNsK0JPfsM0mzxiA-c_-LN2MpZUC-V9WEYAecA9CqhF0UGJMzrU4ZjxmCrTnfePpE9c7fByHQVfTKiZ_E9vHDhkWLYrR6oJQOYLPKz7r3DUj1WQkW0RStFhdkFw7vv54JxVsjblB6shwl8A0nncM7XtpeUYSIpAJG6b-G_VHvtOOMOrMvkPaQ",
"status": "SUCCESS"
}成功示例2(返回修改密码流程)
HTTP/1.1 200 OK
json
{
"state_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ7XCJVc2VyTmFtZVwiOlwiYm9iXCIsXCJJRFBJZFwiOlwiMjAyMzAzMjMxODA5NDgxMTktNjc2My0yNDlDQzgzMjlcIixcInVzZXJJZFwiOlwiMjAyNDA1MDcxNTQ0MjE1NjYtNTZBQy03RDA3QTlFRDZcIixcInN0YXR1c1wiOlwiQURfUEFTU1dPUkRfRVhQSVJFRFwifSIsImV4cCI6MTcxNTA3MTU0MywiaWF0IjoxNzE1MDY5NzQzLCJqdGkiOiIxNzE1MDY5NzQzNjI2NTIwIn0.o2hiJk7WpuDs3LQBm7itaDzC5Ksg0pRPDFG8tKd3njc",
"status": "AD_PASSWORD_EXPIRED"
}成功示例3(返回多因素认证流程)
HTTP/1.1 200 OK
json
{
"data": "[\"TOTP\",\"SMS\",\"EMAIL\",\"FIDO2\"]",
"state_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ7XCJ1c2VySWRcIjpcIjIwMjQwNTA3MTU0NDIxNTY2LTU2QUMtN0QwN0E5RUQ2XCIsXCJzdGF0dXNcIjpcIk1GQV9BVVRIXCJ9IiwiZXhwIjoxNzE1MDcyMTMwLCJpYXQiOjE3MTUwNzAzMzAsImp0aSI6IjE3MTUwNzAzMzA4NDYxMjYifQ.WKxxKmp9bfBAU9eYQz-agWD1kJ5wDcQu4PdSFOdM_so",
"status": "MFA_AUTH"
}错误示例
json
{
"error_code": "SDK.AD.0002",
"error_msg": "AD认证失败"
}返回参数
| 参数名 | 中文名称 | 类型 | 描述 |
|---|---|---|---|
| status | 登录流程状态标识 | String | 该字段可能返回的值如下: SUCCESS 登录成功 AD_PASSWORD_EXPIRED 密码已过期 MFA_AUTH 需要二次认证 |
| expire | session_token有效期 | Number | Session_token有效期,有效期内可使用session_token获取ticket |
| session_token | 用户session_token | String | 用户session_token,可使用该token调用IDaaS接口获取新的id_token |
| state_token | 用户带有状态的令牌 | String | 用户带有状态的令牌 |
| data | 返回说明 | String | 返回说明 |
| id_token | 短期有效,接口调用令牌 | String | 该字段为jwt格式,包含用户身份信息。 |
错误码
| 状态码 | 错误码 | 中文错误信息 | 英文错误信息 | 处理措施 |
|---|---|---|---|---|
| 400 | SDK.AD.0001 | 不支持AD认证 | 请检查应用是否开启了AD认证 | |
| 400 | SDK.AD.0002 | AD认证失败 | 请检查输入的用户名和密码 | |
| 500 | SDK.AD.0003 | AD 连接超时 | 请检查AD配置与网络 | |
| 500 | SDK.AD.0004 | AD 网络错误 | 请检查AD配置与网络 | |
| 400 | SDK.AGENT.0001 | 云桥 登录错误 | 请检查输入的用户名和密码 | |
| 500 | SDK.AGENT.0002 | 云桥 状态类型错误 | 请检查云桥运行状态 | |
| 500 | SDK.AGENT.0003 | 云桥 连接网络错误 | 请检查云桥中AD的连接配置 | |
| 500 | SDK.AGENT.0004 | 云桥 连接超时 | 请检查云桥中的AD连接 | |
| 500 | SDK.AGENT.0005 | 云桥离线 | 请检查云桥是否启动 | |
| 400 | SDK.AGENT.0006 | 云桥 SSL检查错误 | 请检查AD的证书是否是云桥Agent可信的证书 | |
| 400 | SDK.AGENT.0007 | 云桥 证书异常 | 请检查AD的证书是否是云桥Agent可信的证书 | |
| 500 | SDK.AGENT.0008 | 云桥系统异常 | 请检查云桥配置 |