KubeSphere 企业版支持设置外部身份验证,平台管理员可以通过 secret(保密字典)配置身份提供者。

配置外部身份提供者后,允许使用 LDAP、CAS、GitHub、阿里云 IDaas、或 OpenID Connect 的用户名和密码登录 KubeSphere 企业版 Web 控制台。

操作步骤

  1. 以具有 platform-admin 角色的用户登录 KubeSphere 企业版 Web 控制台。

  2. 进入企业空间 system-workspace 下的项目 kubesphere-system

  3. 在左侧导航栏选择配置 > 保密字典

  4. 在页面点击创建

  5. 创建保密字典对话框,点击右上角的编辑 YAML 开关,使用 yaml 创建保密字典。

  6. 按照以下示例及配置说明修改 yaml 文件,配置完成后,点击创建

  7. 登出 KubeSphere 企业版 Web 控制台,在登录页面,根据配置的外部身份验证类型,输入 LDAP、CAS、GitHub、阿里云 IDaas、或 OpenID Connect 的用户名和密码登录。

说明

多集群环境中,只需要在主集群中进行配置。

OpenLDAP 示例 yaml

  1. apiVersion: v1
  2. kind: Secret
  3. metadata:
  4. namespace: kubesphere-system
  5. name: identity-provider-ldap
  6. labels:
  7. config.kubesphere.io/type: identityprovider
  8. stringData:
  9. configuration.yaml: |
  10. name: openldap
  11. type: LDAPIdentityProvider
  12. mappingMethod: auto
  13. provider:
  14. host: "192.168.0.2:389"
  15. managerDN: uid=root,cn=users,dc=nas
  16. managerPassword: "********"
  17. userSearchBase: cn=users,dc=nas
  18. loginAttribute: uid
  19. mailAttribute: mail
  20. type: config.kubesphere.io/identityprovider
注意
  • secret 必须创建在 kubeshere-system 项目中。

  • secret 必须包含 type。

    type: config.kubesphere.io/identityprovider

  • secret 必须包含 label。

    config.kubesphere.io/type: identityprovider

配置说明

上述示例的 stringData:configuration.yaml 参数中:

  • name: 指定外部身份验证的名称,必须唯一,否则会创建失败。

  • type: 指定外部身份验证的类型,支持以下类型:

    • LDAP: LDAPIdentityProvider

    • CAS: CASIdentityProvider

    • GitHub: GitHubIdentityProvider

    • 阿里云 IDaas: AliyunIDaaSProvider

    • OpenID Connect: OIDCIdentityProvider

  • mappingMethod: 指定外部身份用户与 KubeSphere 企业版用户的关联方式。

    • auto: 自动创建相同名称的 KubeSphere 企业版用户,当平台中已存在名称时会创建失败。

    • manual: 登录后创建一个任意名称的新用户。

    • lookup: 自动关联已存在的具有相同名称的 KubeSphere 企业版用户,如果不存在该名称的用户,则创建失败。

  • provider: 外部身份验证的具体参数。以下是不同身份验证类型的 provider 参数示例。

    • LDAPIdentityProvider
    1. host: 192.168.0.2:389
    2. managerDN: uid=root,cn=users,dc=nas
    3. managerPassword: "********"
    4. userSearchBase: cn=users,dc=nas
    5. loginAttribute: uid
    6. mailAttribute: mail
    • CASIdentityProvider
    1. redirectURL: "https://ks-console:30880/oauth/redirect/cas"
    2. casServerURL: "https://cas.example.org/cas"
    3. insecureSkipVerify: true
    • OIDCIdentityProvider
    1. clientID: '********'
    2. clientSecret: '********'
    3. issuer: https://accounts.google.com
    4. redirectURL: 'https://ks-console/oauth/redirect/google'
    • GitHubIdentityProvider
    1. clientID: '******'
    2. clientSecret: '******'
    3. redirectURL: 'https://ks-console/oauth/redirect/github'

    阿里云 IDaaS 身份提供者的配置方法,请参阅阿里云 IDaaS 文档