首批通过分布式安全可靠测评,为关键业务系统打造
SSO 集成
更新时间:2026-04-13 15:31:14
背景信息
单点登录 (SSO) 是一种身份验证方法,用户只需使用一组凭据即可安全地对 ODC 进行身份验证。
用户可以通过配置 OAuth2/OIDC 类型单点登录 ODC。
概念介绍
OAuth(Open Authorization,开放授权)是一个开放标准的授权协议,允许用户授权第三方应用访问其存储在资源服务上受保护的信息,而不需要将用户名和密码提供给第三方应用,解耦了认证和授权。OAuth 作为一种国际标准,目前传播广泛并被持续采用。OAuth2.0 是 OAuth 协议的延续版本,更加安全,更易于实现,但不兼容 OAuth1.0,即完全废止了 OAuth1.0。 OAuth(Open Authorization,开放授权)是为用户资源的授权定义了一个安全、开放及简单的标准,第三方无需获知用户的账号和密码,即可获取到用户的授权信息。
OAuth2 用于REST/APIs 的代理授权框架(delegated authorization framework)。
OAuth2 是基于令牌 Token 的授权,在无需暴露用户密码的情况下,让应用获取对用户数据有限访问权限。
OAuth2 解耦认证和授权。
OIDC(OpenID Connect)是一种安全认证机制,第三方应用连接到身份认证提供商(Identify Provider)获取用户信息,并把这些信息以可靠的方式返回给第三方应用。OIDC 对 OAuth2.0 协议进行了扩展,通过扩展的 ID Token 字段,提供用户基础身份信息,ID Token 使用 JWT(JSON Web Token)格式进行封装,提供自包含性、防篡改机制,可以安全的传递给第三方应用程序并容易被验证。
原理介绍
OAuth2
ODC 适配标准 OAuth2 认证中心,目前仅支持授权码(authorization-code)模式,即应用程序使用授权码来向授权服务器申请访问令牌/刷新令牌。

如图所示,授权流程场景可以描述为如下几个步骤:
- 用户登录应用系统,请求跳转到认证服务器,并 302 返回登录认证页面。
- 用户输入账户+密码进行认证,认证服务器认证通过返回 code 给应用系统。
- 应用系统携带 code 向认证服务器换取访问令牌,认证服务器验证 Client ID,code 等信息,给应用系统发送访问令牌。
- 应用系统携带访问令牌查询用户登录信息,认证服务器返回用户信息,如用户名。
- 应用系统验证用户名正确,创建会话,并跳转到 redirect url。
上述图中的相关参数说明如下:
| 步骤 | 参数说明 |
|---|---|
| 步骤 1 | Authorization Request
|
| 步骤 2 | 验证步骤 1 中传递的参数。 显示登录页面,让用户认证。 用户授权 client 可访问的资源。 |
| 步骤 3 | Authorization Response 跳转到步骤 1 中指定的 redirect_url,并返回:
|
| 步骤 4 | Access Token Request
|
| 步骤 5 | Access Token Response
|
OIDC

客户端发送认证请求给认证服务。
用户在认证页面进行授权确认(通过用户名和密码登录)。
认证服务对认证请求进行验证,并返回 code 给客户端。
客户端向业务服务请求回调接口,请求中携带 code。
业务服务请求认证服务颁发Token,请求中携带 code、Client ID、Client Secret。
认证服务验证合法性,并返回 ID Token。
认证成功,业务服务返回 ID Token 给客户端。
客户端向业务请求,请求中携带 ID Token。
业务服务验证 ID Token 是否合法,然后返回业务应答。
前提条件
拥有系统集成操作权限的用户。
用户已部署授权服务。
注意事项
只支持授权码模式。
退出登录时,只清除 ODC 应用的登录态,不会清理 SSO 系统的登录态。
映射名称必须为字符串 String 类型。
新建 SSO 集成
配置 OAUTH2 类型
示例:使用 OAUTH 类型集成 CAS 到 ODC 中,以通过 CAS 账号授权访问到 ODC。
登录 Web 版 ODC 后,在项目协同窗口中,单击 外部集成 > SSO 集成 > 新建 SSO 集成。

在新建 SSO 集成页面中配置网关鉴权相关参数。
OAUTH 类型参数说明如下:
参数 说明 配置名称 配置名称将会应用于自定义登录名。 类型 选择 OAUTH。 Client ID 应用标识,与授权服务器注册时的配置保持一致。 Auth URL 授权服务器提供的获取 grant-code 地址。 User Info URL 授权服务器提供的获取 user-info 地址。 Token URL 授权服务器提供的获取 access-token 地址。 Redirect URL 授权服务器回调 ODC 服务的地址。 注意
如果 SSO 有回调白名单,需要进行加白。
用户信息数据结构类型 支持 FLAT(扁平结构)或者NESTED(嵌套结构)。 Scope 应用授权作用域,多个用空格隔开,建议为 profile。 注意
通过第三方应用配置 OSS 时,Scope 必须填写
openid。jwkSet URL 可选项。授权服务器提供的公钥地址,使用公钥进行鉴权。 userNameAttribute 可选项。用户名称字段。 Client Authentication Method 使用授权服务器对客户端进行身份验证时使用的身份验证方法 Authorization Grant Type OAUTH2 的授权方式。 User Info Authentication Method 在向资源服务器发送资源请求中的承载访问令牌时使用的身份验证方法。 单击 测试连接,跳转到 CAS 登录界面。
说明
CAS 无需回调白名单。如果集成其它应用到 ODC 中需要配置白名单时,请根据页面上的提示信息手动添加。

输入 CAS 账号和密码后,在授权页面中单击 Allow 授权访问到 ODC。

测试连接成功后,返回用户信息 API 的结构,根据返回的信息填写用户字段映射相关参数。
说明
- 对于不同的第三方应用,其用户信息 API 返回的结构通常不同。为将第三方应用的用户信息映射到 ODC 用户字段,您需要填写用户信息映射表单。用户字段映射用于标识与 OAuth2 登录关联的 ODC 帐户的标识符。
- 您可以从返回的连接信息中选择参数名填写 用户名字段 和 用户昵称字段。
- 您也可以填写自定义字段和自定义字段映射规则。
- 系统管理员可以通过自动授权配置自定义字段名,用户通过自定义字段登录 ODC 时会自动获得被授予角色或权限。

单击 保存,完成创建 SSO 集成。
在 SSO 集成列表中,开启创建的 SSO 集成。
说明
仅支持开启一个 SSO 集成。
在 Web ODC 的登录页面,单击 第三方登录 跳转到第三方登录界面,使用第三方登录账号访问到 ODC。

配置 OIDC 类型
示例:使用 OIDC 类型集成第三方应用到 ODC 中,以通过第三方登录账号授权访问到 ODC。
登录 Web 版 ODC 后,在项目协同窗口中,单击 外部集成 > SSO 集成 > 新建 SSO 集成。

在新建 SSO 集成页面中配置网关鉴权相关参数。
OIDC 类型参数说明如下:
步骤 参数说明 配置名称 配置名称将会应用于自定义登录名。 类型 选择 OIDC。 Client ID 应用标识,与授权服务器注册时的配置保持一致。 Client Secret 应用密钥,与授权服务器注册时的配置保持一致。 Scope 应用授权作用域,多个用空格隔开,建议为 profile。 注意
通过第三方应用配置 OSS 时,Scope 必须填写
openid。Issue URL 设置认证服务的 Issue 地址。 Redirect URL 授权服务器回调 ODC 服务的地址。 注意
如果 SSO 有回调白名单,需要进行加白。
用户信息数据结构类型 支持 FLAT(扁平结构)或者NESTED(嵌套结构)。 测试连接需要单独的回调白名单,请根据页面上的提示信息手动添加白名单后,单击 测试连接。
输入第三方登录账号和密码。

测试连接成功后,返回用户信息 API 的结构,根据返回的信息填写用户字段映射相关参数。
说明
- 对于不同的第三方应用,其用户信息 API 返回的结构通常不同。为将第三方应用的用户信息映射到 ODC 用户字段,您需要填写用户信息映射表单。用户字段映射用于标识与 OIDC 登录关联的 ODC 帐户的标识符。
- 您可以从返回的连接信息中选择参数名填写 用户名字段 和 用户昵称字段。
- 您也可以通过填写自定义字段和自定义字段映射规则。
- 系统管理员可以通过自动授权配置自定义字段名,用户通过自定义字段登录 ODC 时会自动获得被授予角色或权限。

单击 保存,完成创建 SSO 集成。
在 SSO 集成列表中,开启创建的 SSO 集成。
说明
仅支持开启一个 SSO 集成。
在 Web ODC 的登录页面,单击 第三方登录 跳转到第三方登录界面,使用第三方登录账号访问到 ODC。

管理 SSO 集成
在 SSO 集成列表中,您可以启用/查看/编辑/删除创建的 SSO 集成。
