自建OIDC应用
添加OIDC应用
场景
创建OIDC应用以后,企业的应用(如GitLab 或企业自己开发的应用)可以通过OIDC协议的连接来实现应用的单点登录。用户只需登录一次XAuth,即可访问企业内OIDC连接的应用。(前提:该终端用户被授予访问该应用)
配置
登录企业租户理员后台,导航到【应用】-【创建应用】,认证方式选择OIDC
接下来,选择应用的类型
-
Web应用
身份认证和Token在服务端处理的业务
-
SPA单页面应用
Token保存在浏览器当中
-
Native APP应用
PC客户端,移动APP等
对于协议类型的选择和配置,详细参考OIDC类型的选择
以添加常见的应用类型:Web应用(Authorization Code)类型为例:
-
选择Web应用
-
添加成功后,可以看到应用的基本信息
- 切换到【协议配置】的Tab页
- 查看OIDC的元数据,点击下图的链接
元数据中包含了以下的请求接口的Url:
- 请求授权
- 获取Token
- 签名密钥
- 请求用户信息Userinfo等
请求(认证)授权的地址
https://${yourXAuthDomain}/oauth/v1/authorize
地址的格式为:其中${yourXAuthDomain} 为您注册的租户域名
通过请求授权接口,将返回本次请求授权的Code,请求中需要包含请求的client_id, response_type, redirect_uri, scope等必要参数,详细的接口的详细说明参考:授权接口API详细说明
请求的示例
发起的请求中由 response_type=code
指定了授权码模式。该请求会返回一个授权码code
,用于向/token
端点请求access token。
https://${yourXAuthSubDomain}/oauth/v1/authorize?client_id=0oabucvy
c38HLL1ef0h7&response_type=code&scope=openid&redirect_uri=http%3A%2F%2Flocal
host%3A8080&state=state-296bc9a0-a2a2-4a57-be1a-d0e2fd9bb601&nonce=g5ly497e8ps
请求Token的地址
https://${yourXAuthDomain}/oauth/v1/token
请求地址的格式为:其中${yourXAuthDomain} 为您注册的租户域名
通过请求token接口,code,grant_type, redirect_uri ,scope, 此端点根据请求参数返回 access tokens, ID tokens,和 refresh tokens
请求的接口的详细说明参考:请求Token接口API详细说明
请求示例
curl -v -X POST \
-H "Content-type:application/x-www-form-urlencoded" \
"https://${yourXAuthDomain}/oauth/v1/token" \
-d "client_id=${clientId}&client_secret=${clientSecret}&grant_type=authorization_code&redirect_uri=${redirectUri}&code=${code}"
获取验签密钥
https://${yourXAuthDomain}/oauth/v1/keys
获取Token签名的公钥,默认的Token的签名算法为RS256
请求Userinfo接口
https://${yourXAuthDomain}/oauth/v1/userinfo
请求地址的格式为:其中${yourXAuthDomain} 为您注册的租户域名
该接口返回有关当前登录用户的信息,请求Userinfo接口的详细说明
您必须在 HTTP 授权头中包含access token(在/authorization
端点返回)。
请求示例
curl -X GET \
-H "Authorization: Bearer ${access_token}" \
"https://${yourXAuthDomain}/oauth/v1/userinfo"