最新更新: 2022-06-23 09:41:33
  • avatar
  • avatar
  • avatar
  • avatar

OIDC 身份提供者

OIDC 身份提供者

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

准备工作

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

步骤

  1. admin 身份登录 KubeSphere,将光标移动到右下角 ,点击 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 最新的技术博客与产品更新的通知


当前版本已经不再维护,将在 10 秒钟后重定向到 kubesphere.io 获取最新版本。