LDAP身份提供者

本文档描述了如何使用 LDAP 服务作为外部身份提供者,允许您根据 LDAP 服务对用户进行身份验证。

准备工作

  • 您需要部署一个 Kubernetes 集群,并在集群中安装 KubeSphere。有关详细信息,请参阅在 Linux 上安装在 Kubernetes 上安装
  • 您需要获取 LDAP 服务的管理员专有名称(DN)和管理员密码。

步骤

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

    1. kubectl -n kubesphere-system edit cc ks-installer

    示例:

    1. spec:
    2. authentication:
    3. jwtSecret: ''
    4. maximumClockSkew: 10s
    5. multipleLogin: true
    6. oauthOptions:
    7. accessTokenMaxAge: 1h
    8. accessTokenInactivityTimeout: 30m
    9. identityProviders:
    10. - name: LDAP
    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
  2. spec:authentication 部分配置 oauthOptions:identityProviders 以外的字段信息请参阅设置外部身份认证

  3. oauthOptions:identityProviders 部分配置字段。

    • name: 用户定义的 LDAP 服务名称。
    • type: 必须将该值设置为 LDAPIdentityProvider 才能将 LDAP 服务用作身份提供者。
    • mappingMethod: 帐户映射方式,值可以是 auto 或者 lookup
      • 如果值为 auto(默认),需要指定新的用户名。KubeSphere 根据用户名自动创建并关联 LDAP 用户。
      • 如果值为 lookup,需要执行步骤 4 以手动关联现有 KubeSphere 用户和 LDAP 用户。
    • provider:
      • host: LDAP 服务的地址和端口号。
      • managerDN: 用于绑定到 LDAP 目录的 DN 。
      • managerPassword: managerDN 对应的密码。
      • userSearchBase: 用户搜索基。设置为所有 LDAP 用户所在目录级别的 DN 。
      • loginAttribute: 标识 LDAP 用户的属性。
      • mailAttribute: 标识 LDAP 用户的电子邮件地址的属性。
  4. 如果 mappingMethod 设置为 lookup,可以运行以下命令并添加标签来进行帐户关联。如果 mappingMethodauto 可以跳过这个部分。

    1. kubectl edit user <KubeSphere username>
    1. labels:
    2. iam.kubesphere.io/identify-provider: <LDAP service name>
    3. iam.kubesphere.io/origin-uid: <LDAP username>
  5. 字段配置完成后,保存修改,然后等待 ks-installer 完成重启。

    备注

    KubeSphere Web 控制台在 ks-installer 重新启动期间不可用。请等待重启完成。

  6. 如果您使用 KubeSphere 3.2.0,请在配置 LDAP 之后执行以下命令并等待至 ks-installer 成功运行:

    1. kubectl -n kubesphere-system set image deployment/ks-apiserver *=kubesphere/ks-apiserver:v3.2.1

    备注

    如果您使用 KubeSphere 3.2.1,请跳过该步骤。

  7. 进入KubeSphere登录页面,输入 LDAP 用户的用户名和密码登录。

    备注

    LDAP 用户的用户名是 loginAttribute 指定的属性值。