# 单点登录2024.2+

支持用户使用自己的单点登录系统,空间成员的身份登录,访问发布资源。

# 单点登录配置

管理空间下的单点登录配置。

全局样式

  • 名称: 配置名称。

  • 应用端 ID: oauth-server 需要的 client_id。

  • 应用端访问密钥: oauth-server 需要的 client_secret。

  • 授权服务器地址: oauth-server 认证服务的根地址。

  • 授权回调地址: 河图接收授权码的地址,/hetu/space/sso/callback 为固定路径。

  • 默认授权范围: scope 参数的值。

  • 是否支持 openid-configuration 端点: 认证服务器是否有 openid-configuration 端点。

  • 状态: 是否允许通过该配置登录。

  • 备注: 备注。

# 认证服务器标准

空间单点登录,需要 oauth-server 支持client_secret_basic客户端认证方法。河图会按照 Oauth2.0 的标准请求认证服务器。

# openid-configuration 端点

OIDC 协议中的标准端点,用于获取认证服务器的相关配置。

# 响应示例

这里只展示了部分返回信息,用户可以通过返回下面三个端点信息,覆盖默认配置。

HTTP/1.1 200 OK
 Content-Type: application/json
 Cache-Control: no-store
{
   "authorization_endpoint":
     "http://192.158.45.125:7745/authorize",
   "token_endpoint":
     "http://192.158.45.125:7745/token",
   "userinfo_endpoint":
     "http://192.158.45.125:7745/userinfo"
  }
  • authorization_endpoint: 获取授权码端点。

  • token_endpoint: 获取 accessToken 端点。

  • userinfo_endpoint: 获取用户信息端点。

# authorization_endpoint 端点

Oauth2.0 协议中获取授权码端点,在请求该端点时,河图携带的state 参数必须要在回调地址中带上该参数。

# token_endpoint 端点

Oauth2.0 协议中获取 accessToken 端点。

# 响应示例

 HTTP/1.1 200 OK
  Content-Type: application/json
  Cache-Control: no-store

  {
   "access_token": "SlAV32hkKG",
   "token_type": "Bearer",
   "refresh_token": "8xLOxBtZp8",
   "expires_in": 3600,
   "id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjFlOWdkazcifQ.ewogImlzc
     yI6ICJodHRwOi8vc2VydmVyLmV4YW1wbGUuY29tIiwKICJzdWIiOiAiMjQ4Mjg5
     NzYxMDAxIiwKICJhdWQiOiAiczZCaGRSa3F0MyIsCiAibm9uY2UiOiAibi0wUzZ
     fV3pBMk1qIiwKICJleHAiOiAxMzExMjgxOTcwLAogImlhdCI6IDEzMTEyODA5Nz
     AKfQ.ggW8hZ1EuVLuxNuuIJKX_V8a_OMXzR0EHR9R6jgdqrOOF4daGU96Sr_P6q
     Jp6IcmD3HP99Obi1PRs-cwh3LO-p146waJ8IhehcwL7F09JdijmBqkvPeB2T9CJ
     NqeGpe-gccMg4vfKjkM8FcGvnzZUN4_KSP0aAp1tOJ1zZwgjxqGByKHiOtX7Tpd
     QyHE5lcMiKPXfEIQILVq0pc_E2DzL7emopWoaoZTF_m0_N0YzFC6g6EJbOEoRoS
     K5hoDalrcvRYLSrQAZZKflyuVCyixEoV9GfNQC3_osjzw2PAithfubEEBLuVVk4
     XUVrWOLrLl0nx7RkKU8NXNHq-rvKMzqg"
  }
  • access_token: 访问令牌。

  • token_type: Token 类型。

  • refresh_token: 刷新令牌,刷新 Token 时使用。

  • expires_in: 令牌有效期,单位秒。

  • id_token: 身份令牌。

提示:

  1. 如果不支持 userinfo_endpoint,access_token 和 id_token 至少有一个需要符合标准的JWT Token格式。Token 的 payload 中必有包含sub claim。sub在河图系统中作为用户唯一标识

# userinfo_endpoint 端点

OIDC 协议中获取用户信息端点。如果 openid-configuration 端点返回了该端点数据,会请求该端点获取用户信息。

# 响应示例

  HTTP/1.1 200 OK
  Content-Type: application/json

  {
   "sub": "248289761001",
   "name": "Jane Doe",
   "given_name": "Jane",
   "family_name": "Doe",
   "preferred_username": "j.doe",
   "email": "janedoe@example.com",
   "picture": "http://example.com/janedoe/me.jpg"
  }

提示:

该端点需要返回sub作为用户唯一标识。

# 单点登录使用

# 发布资源

单点登录配置后,如果发布资源设置了登录验证,则可以通过单点登录登录访问发布资源。

全局样式

提示:

如果设置了登录验证但是没有设置用户和用户组则任何一个人都可以通过单点登录访问。 如果设置了用户或用户组则必须先同步过用户且 Token 中的sub必须和登录名对应上,才有权限访问。

# 数据门户

数据门户如果设置导航权限可以用来限制登录人访问。 如果设置导航权限则必须先同步过用户且 Token 中的sub必须和登录名对应上,才有权限访问。

Last Updated: 7/11/2024, 11:23:43 AM