Link Search Menu Expand Document

自建OIDC应用

  1. 添加OIDC应用
  2. 场景
  3. 配置
    1. 请求(认证)授权的地址
    2. 请求Token的地址
    3. 获取验签密钥
    4. 请求Userinfo接口
    5. 更多的接口说明

添加OIDC应用

场景

创建OIDC应用以后,企业的应用(如GitLab 或企业自己开发的应用)可以通过OIDC协议的连接来实现应用的单点登录。用户只需登录一次XAuth,即可访问企业内OIDC连接的应用。(前提:该终端用户被授予访问该应用)

配置

登录企业租户理员后台,导航到【应用】-【创建应用】,认证方式选择OIDC

image

接下来,选择应用的类型

  • Web应用

    身份认证和Token在服务端处理的业务

  • SPA单页面应用

    Token保存在浏览器当中

  • Native APP应用

    PC客户端,移动APP等

对于协议类型的选择和配置,详细参考OIDC类型的选择

以添加常见的应用类型:Web应用(Authorization Code)类型为例:

  1. 选择Web应用

    image

  2. 添加成功后,可以看到应用的基本信息

  3. 切换到【协议配置】的Tab页
  4. 查看OIDC的元数据,点击下图的链接

image

元数据中包含了以下的请求接口的Url:

  • 请求授权
  • 获取Token
  • 签名密钥
  • 请求用户信息Userinfo等

image

请求(认证)授权的地址

   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"

更多的接口说明

查看OIDC 的API详细说明