OIDC 管理

平台支持 OIDC(OpenID Connect)协议,平台管理员可以在添加 OIDC 配置后,使用第三方账户登录。平台管理员还可以更新和删除已配置的 OIDC 服务。

OIDC 概述

OIDC(OpenID Connect)是基于 OAuth 2.0 协议的身份认证标准协议。它使用 OAuth 2.0 授权服务器为第三方客户端提供用户身份认证,并将相应的身份认证信息传递给客户端。

OIDC 允许所有类型的客户端(包括服务器端、移动设备和 JavaScript 客户端)请求并接收经过身份验证的会话及最终用户信息。此规范套件是可扩展的,允许参与者使用可选功能,例如身份数据加密、OpenID 提供者发现和会话管理,当它们有意义时。有关更多信息,请参见 OIDC 官方文档

添加 OIDC

通过添加 OIDC,您可以使用第三方平台账户登录平台。

注意:在 OIDC 用户成功登录平台后,平台将使用用户的电子邮件属性作为唯一标识符。支持 OIDC 的第三方平台用户必须具有 email 属性;否则,他们将无法登录平台。

操作流程

  1. 在左侧导航栏中,点击 用户 > 身份提供者(IDPs)

  2. 点击 添加 OIDC

  3. 配置 基本信息 参数。

  4. 配置 OIDC 服务器配置 参数:

    • 身份提供者 URL:发行者 URL,即 OIDC 身份提供者的访问地址。

    • 客户端 ID:OIDC 客户端的客户端标识符。

    • 客户端密钥:OIDC 客户端的密钥。

    • 重定向 URI:登录第三方平台后的回调地址,即 dex 发行者的 URL + /callback

    • 登出 URL:用户执行 登出 操作后访问的地址。如果为空,登出地址将是平台的初始登录页面。

  5. 身份提供者服务配置验证 区域,输入有效 OIDC 账户的 用户名密码 以验证配置。

    提示:如果用户名和密码不正确,添加时将报告错误,指示凭据无效,无法添加 OIDC。

  6. 点击 创建

通过 YAML 添加 OIDC

除了表单配置外,该平台还支持通过 YAML 添加 OIDC,这允许更灵活地配置身份验证参数、声明映射、用户组同步和其他高级功能。

示例:配置 OIDC 连接器

以下示例演示如何配置 OIDC 连接器,以集成 OIDC 身份认证服务。此配置示例适用于以下场景:

  1. 需要将 OIDC 集成作为身份认证服务器。

  2. 需要支持用户组信息同步。

  3. 需要自定义登出重定向地址。

  4. 需要配置特定的 OIDC 范围。

  5. 需要自定义声明映射。

apiVersion: dex.coreos.com/v1
kind: Connector
# 连接器基本信息
id: oidc               # 连接器唯一标识符
name: oidc             # 连接器显示名称
type: oidc             # 连接器类型为 OIDC
metadata:
  annotations:
    cpaas.io/description: "11"  # 连接器描述
  name: oidc
  namespace: cpaas-system
spec:
  config:
    # OIDC 服务器配置
    # 配置服务器连接信息,包括服务器地址、客户端凭据和回调地址
    issuer: http://auth.com/auth/realms/master               # OIDC 服务器地址
    clientID: dex                                            # 客户端 ID
    # 服务帐户密钥,仅在第一次创建连接器资源时有效
    clientSecret: xxxxxxx
    redirectURI: https://example.com/dex/callback            # 回调地址,必须与 OIDC 客户端注册的地址匹配
    
    # 安全配置
    # 配置 SSL 验证和用户信息获取方法
    insecureSkipVerify: true                                # 是否跳过 SSL 验证,建议在生产环境中设置为 false
    getUserInfo: false                                      # 是否通过 UserInfo 端点获取其他用户信息

    # 登出配置
    # 配置用户登出后重定向地址
    logoutURL: https://test.com                            # 登出重定向地址,可以自定义为用户登出后的跳转页面

    # 范围配置
    # 配置所需的授权范围,确保 OIDC 服务器支持这些范围
    scopes:                                                 
      - openid                                             # 必需,用于 OIDC 基本认证
      - profile                                            # 可选,用于获取用户基本信息
      - email                                              # 可选,用于获取用户电子邮件

    # 声明映射配置
    # 配置 OIDC 返回的声明与平台用户属性之间的映射关系
    claimMapping:                                          
      email: email                                         # 电子邮件映射,用于用户唯一标识
      groups: groups                                       # 用户组映射,用于组织结构
      phone: ""                                            # 电话映射,选填
      preferred_username: preferred_username               # 用户名映射,用于显示名称

    # 用户组配置
    # 配置与用户组同步相关的参数,确保令牌包含组信息
    groupsKey: groups                                      # 指定组信息的键名称
    insecureEnableGroups: false                           # 是否启用组同步功能

相关操作

您可以在列表页面右侧点击 或在详细信息页面右上角点击 操作 来根据需要更新或删除 OIDC。

操作描述
更新 OIDC更新已添加的 OIDC 配置。在更新 OIDC 配置信息后,原有用户和认证方法将根据当前配置被重置和同步。
删除 OIDC删除平台不再使用的 OIDC。在删除 OIDC 后,通过该 OIDC 同步到平台的所有用户将具有 无效 状态(用户与角色之间的绑定关系保持不变),并且他们无法登录平台。重新集成后,用户可以通过成功登录平台激活。

提示:在删除身份提供者后,如果需要删除通过 OIDC 同步到平台的用户和用户组,请勾选提示框下的 清除身份提供者用户和用户组 复选框。