OIDC 身份提供者

OIDC 身份提供者

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

准备工作

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

步骤

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

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

    使用 Google Identity Platform 的示例

    spec:
      authentication:
        jwtSecret: ''
        authenticateRateLimiterMaxTries: 10
        authenticateRateLimiterDuration: 10m0s
        oauthOptions:
          accessTokenMaxAge: 1h
          accessTokenInactivityTimeout: 30m
          identityProviders:
          - name: google
            type: OIDCIdentityProvider
            mappingMethod: auto
            provider:
              clientID: '********'
              clientSecret: '********'
              issuer: https://accounts.google.com
              redirectURL:  'https://ks-console/oauth/redirect/google'
    

    字段描述如下:

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

通过邮件接收 KubeSphere 最新的技术博客与产品更新的通知


感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。