简化授权码认证
用户访问第三方应用时,第三方应用向竹云IDaaS发起授权登录请求,用户输入用户密码认证成功后,竹云IDaaS将重定向到第三方应用,并且带上访问令牌access_token和ID令牌 id_token。
# 请求说明
GET https://{your_domain}/api/v1/oauth2/authorize
# 请求参数
参数名 | 中文名称 | 必须 | 示例值 | 描述 |
---|---|---|---|---|
response_type | 授权类型 | 必须 | id_token | 此值固定为id_token |
client_id | 应用标识 | 必须 | RqB2HiHC9N676qA | 申请接入后分配给第三方应用的clientid。 |
redirect_uri | 回调地址 | 可选 | http://oidcdemo.bccastle.com /demo/index.jsp | 授权后的回调地址, 必须是注册应用时填写的可信域名一致, 注意需要将url进行URLEncode。 |
state | 状态码 | 可选 | 15924362 | client端状态值。用于防止CSRF攻击, 成功授权后回调时会原样带回。 请检查用户与state状态绑定。 |
scope | 适用范围 | 必须 | openid | 至少包含值为openid的scope的参数 |
response_mode | 响应方式 | 可选 | fragment | 默认值fragment,可选query |
# 请求示例
https://{your_domain}/api/v1/oauth2/authorize?response_type=id_token&client_id={client_id}&redirect_uri=
http://oidcdemo.bccastle.com/demo/index.jsp&state=15924362&scope=openid&state=15924362
# 返回示例
正确返回示例
HTTP Status: 302 REDIRECT
{redire*ct_uri}\#id_token=eyJHRwczovL2...u8mPI5Z96IQ&state=15924362t*#access_token=NObiIMkOvBgHIo8&token_type=Bearer&expires_in=6285&scope=openid&state=15924362
用户未授权应用的错误提示
HTTP Status: 302 REDIRECT
https://{your_domain}/authentication/UnauthorizedUser.html
client_id参数缺失
HTTP Status: 400 BAD REQUEST
{
"error": "invalid_request",
"error_description": "Missing client_id"
}
client_id参数不正确
HTTP Status: 400 BAD REQUEST
{
"error": "invalid_request",
"error_description": "client_id parameter is error"
}
response_type参数名称、值错误
HTTP Status: 400 BAD REQUEST
{
"error": "unsupported_response_type",
"error_description": "Unsupported response types: [xxx]"
}
redirect_uri 参数不正确
HTTP Status: 400 BAD REQUEST
{
"error": "invalid_request",
"error_description": "Invalid redirect: xxx does not match one of the registered values."
}
scope参数不正确
HTTP Status: 302
{redirect_uri}?error=invalid_scope&error_description=Invalid scope: xxx&state=123456
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 返回参数
如果用户成功登录并授权,则会跳转到指定的回调地址,并在redirect_uri地址后带上Authorization Code和原始的state值。
参数名 | 中文名称 | 必须 | 示例值 | 描述 |
---|---|---|---|---|
access_token | 授权令牌 | 必须 | NObiKQS-cn8AWnZyIMkOvBgHIo8 | 作为URL锚点参会,并不是query参数 |
token_type | 令牌类型 | 必须 | Bearer | 固定 Bearer |
expires_in | 授权令牌的有效期 | 必须 | 7199 | 授权服务器返回给应用的访问票据的有效期。注意:有效期以秒为单位。 |
id_token | ID Token | 必须 | eyJhbGciOiJSUzI1NiIsImtp.... | |
scope | 授权范围 | 必须 | openid | |
state | 应用端的状态码 | 可选 | 15924362 | client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。 |