Skip to content

简化授权码认证

用户访问第三方应用时,第三方应用向竹云IDaaS发起授权登录请求,用户输入用户密码认证成功后,竹云IDaaS将重定向到第三方应用,并且带上访问令牌access_token和ID令牌 id_token。

请求说明

http
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状态码可选15924362client端状态值。用于防止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

返回示例

正确返回示例

json
HTTP Status: 302 REDIRECT
{redirect_uri}/#id_token=eyJHRwczovL2...u8mPI5Z96IQ&state=15924362t*#access_token=NObiIMkOvBgHIo8&token_type=Bearer&expires_in=6285&scope=openid&state=15924362

用户未授权应用的错误提示

json
HTTP Status: 302 REDIRECT
https://{your_domain}/authentication/UnauthorizedUser.html

client_id参数缺失

json
HTTP Status: 400 BAD REQUEST 
{
    "error": "invalid_request",
    "error_description": "Missing client_id"
}

client_id参数不正确

json
HTTP Status: 400 BAD REQUEST 
{
    "error": "invalid_request",
    "error_description": "client_id parameter is error"
}

response_type参数名称、值错误

json
HTTP Status: 400 BAD REQUEST 
{
    "error": "unsupported_response_type",
    "error_description": "Unsupported response types: [xxx]"
}

redirect_uri参数不正确

json
HTTP Status: 400 BAD REQUEST
{ 
    "error": "invalid_request",
    "error_description": "Invalid redirect: xxx does not match one of the registered values."
}

scope参数不正确

json
HTTP Status: 302 
{redirect_uri}?error=invalid_scope&error_description=Invalid scope: xxx&state=123456

返回参数

如果用户成功登录并授权,则会跳转到指定的回调地址,并在redirect_uri地址后带上Authorization Code和原始的state值。

参数名中文名称必填示例值描述
access_token授权令牌必须NObiKQS-cn8AWnZyIMkOvBgHIo8作为URL锚点参会,并不是query参数
token_type令牌类型必须Bearer固定 Bearer
expires_in授权令牌的有效期必须7199授权服务器返回给应用的访问票据的有效期。注意:有效期以秒为单位。
id_tokenID Token必须eyJhbGciOiJSUzI1NiIsImtp....
scope授权范围必须openid
state应用端的状态码可选15924362client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。

竹云IDaaS开放平台