OIDC 身份提供者

OIDC 身份提供者

OpenID Connect 是一种基于 OAuth 2.0 系列规范的可互操作的身份认证协议。使用简单的 REST/JSON 消息流,其设计目标是“让简单的事情变得简单,让复杂的事情成为可能”。与之前的任何身份认证协议(例如 Keycloak、Okta、Dex、Auth0、Gluu 等)相比,开发人员集成起来非常容易。

准备工作

您需要部署一个 Kubernetes 集群,并在集群中安装 KubeSphere。有关详细信息,请参阅在 Linux 上安装在 Kubernetes 上安装

步骤

  1. admin 身份登录 KubeSphere,将光标移动到右下角 OIDC 身份提供者 - 图1 ,点击 kubectl,然后执行以下命令来编辑 CRD ClusterConfiguration 中的 ks-installer

    1. kubectl -n kubesphere-system edit cc ks-installer
  2. spec.authentication.jwtSecret 字段下添加以下字段。

    使用 Google Identity Platform 的示例

    1. spec:
    2. authentication:
    3. jwtSecret: ''
    4. authenticateRateLimiterMaxTries: 10
    5. authenticateRateLimiterDuration: 10m0s
    6. oauthOptions:
    7. accessTokenMaxAge: 1h
    8. accessTokenInactivityTimeout: 30m
    9. identityProviders:
    10. - name: google
    11. type: OIDCIdentityProvider
    12. mappingMethod: auto
    13. provider:
    14. clientID: '********'
    15. clientSecret: '********'
    16. issuer: https://accounts.google.com
    17. redirectURL: 'https://ks-console/oauth/redirect/google'

    字段描述如下:

    参数描述
    clientID客户端 ID。
    clientSecret客户端密码。
    redirectURL重定向到 ks-console 的 URL,格式为:https://<域名>/oauth/redirect/<身份提供者名称&gt;。URL 中的 <身份提供者名称> 对应 oauthOptions:identityProviders:name 的值。
    issuer定义客户端如何动态发现有关 OpenID 提供者的信息。
    preferredUsernameKey可配置的密钥,包含首选用户声明。此参数为可选参数。
    emailKey可配置的密钥,包含电子邮件声明。此参数为可选参数。
    getUserInfo使用 userinfo 端点获取令牌的附加声明。非常适用于上游返回 “thin” ID 令牌的场景。此参数为可选参数。
    insecureSkipVerify关闭 TLS 证书验证。