连接到身份提供程序

您可以选择配置与现有身份提供程序(例如,LDAP 服务器)的连接。 至少,您可以使用身份提供程序来验证用户的凭证。 但是,您还可以使用身份提供程序来管理对平台的访问。 连接到身份提供程序时指定的信息确定您是使用身份提供程序进行密码管理还是访问管理。

限制: 若配置了与身份提供商的连接,所有密码管理任务(如更改或重置密码)均须由身份提供商管理员完成。

连接身份提供商有两种方式:

机制 详细信息
LDAP 由 IBM® Software Hub (已弃用) 提供的集成 安装时 IBM Software Hub,该功能 Identity Management Service 将自动启用。 若需使用由 提供的 LDAPIBM Software Hub 集成,请参阅 《配置 IBM Software Hub 以使用内置的 LDAP 集成 》。

配置完成后,请参阅 《连接您的 IBM Software Hub 身份提供商》以使用内置的 LDAP 集成。

优势
您可以将 LDAP 与 SAML SSO 配合使用,也可不与 SAML SSO 配合使用。
您可以选择与 LDAP 服务器集成的级别。 您可使用 LDAP 执行以下操作:
  • 验证用户的凭证
  • 管理对平台的访问权
缺陷
每个实例均可连接到单台 LDAP 服务器。 IBM Software Hub

此方法已弃用,将在未来的版本中移除。

LDAP 由... IBM Cloud Pak foundational services 提供的集成 Identity Management Service 安装时 IBM Software Hub,该功能 Identity Management Service 将自动启用。

然而,若您是从旧版本升级而来 IBM Software Hub 且未启用该 Identity Management Service 功能,可使用命令 setup-iam-integrationIBM Software Hub 该功能与 Identity Management ServiceIBM Cloud Pak foundational services提供的集成。

优势
Identity Management Service 支持:
  • 多种多样的 LDAP 服务器
  • 连接多个 LDAP 服务器的功能
  • 更多配置选项
缺陷
该机制目前尚未发现任何缺点。
弃用通知: 由 提供的 LDAPIBM Software Hub 集成已弃用,并将从未来版本中移除。 若需使用 LDAP 服务器管理用户,您应 集成到 Identity Management Service
谁需要完成这项任务?
您必须具备的权限取决于是否 IBM Software Hub 配置为使用 Identity Management Service
Identity Management Service 未配置(默认)
要配置与 LDAP 服务器的连接,您必须具有以下某个许可权:
  • 管理平台
  • 管理平台角色
Identity Management Service 已配置
要配置与身份提供程序的连接,您必须具有管理平台许可权。
你需要在什么时候完成这项任务?
在授予用户访问权限之前,请完成 IBM Software Hub此任务。

您可以从访问控制页面配置与 LDAP 服务器的连接。

请遵循适用于您的环境的指示信息:
  • 身份管理服务未启用

    如果未 Identity Management Service 启用该功能, 访问控制页面将包含指向 LDAP 配置的链接。

  • 身份管理服务已启用

    如果启用了 Identity Management Service 该功能, 访问控制页面将包含指向身份提供商配置的链接。

该功能 Identity Management Service 未启用

  1. 登录到 IBM Software Hub Web 客户端。
  2. 从菜单中,点击管理 > 访问控制
  3. 单击 LDAP 配置
  4. LDAP 服务器信息部分中,提供有关 LDAP 服务器的以下信息:
    字段 描述
    LDAP 协议
    • 如果是连接到 LDAP 服务器上的安全端口,请选择 ldaps://
    • 如果是连接到 LDAP 服务器上的不安全端口,请选择 ldap://
    LDAP 主机名 输入 LDAP 服务器的主机名。
    LDAP 端口 输入您要连接到的端口。

    标准端口为 389(对于 ldap)和 636(对于 ldaps)。

    用户搜索条件 输入 LDAP 树中从中搜索用户的点。

    这也被称为 LDAP 配置 baseDN 的。

    用户搜索字段 输入用于识别用户的 LDAP 属性。

    例如,cnuidsAMAccountName

    如果您计划使用 LDAP 和 SAML 身份提供者,请确保使用相同的属性来识别用户。 此字段的值应该与 SSO 配置中的 fieldToAuthenticate 参数相同。

    域搜索用户 如果您的 LDAP 服务器需要身份验证才能执行查询,请输入可在 LDAP 服务器上执行查询的用户名。

    这也被称为 LDAP 配置 bindDN 的。

    域搜索密码 如果指定了域搜索用户,请指定此用户的密码。
  5. 如果要将 LDAP 组添加到用户组,请选中使用 LDAP 组并提供有关 LDAP 服务器的以下信息:
    字段 描述
    组搜索条件 输入 LDAP 树中从中搜索组的点。
    组搜索字段 输入用于识别组的 LDAP 属性。

    例如,cn

  6. 如果要使用 LDAP 服务器来管理对平台的访问权,请提供映射到以下值的 LDAP 属性:
    字段 描述
    名字 输入用于识别用户的名字的 LDAP 属性。 例如,givenName
    姓氏 输入用于识别用户的姓氏的 LDAP 属性。 例如,sn
    电子邮件 输入用于识别用户的电子邮件地址的 LDAP 属性。 例如,mail
    组成员 如果选中了使用 LDAP 组,请输入用于识别用户所属的所有 LDAP 组的 LDAP 属性。 例如 memberOf
    组成员字段 如果选中了使用 LDAP 组,请输入用于识别给定组的所有成员的 LDAP 属性。 例如成员

    如果您使用 Microsoft Active Directory 并且要启用嵌套组搜索,请将以下扩展标识添加到 LDAP 属性::1.2.840.113556.1.4.1941:

    memberOf:1.2.840.113556.1.4.1941:例如:

    重要提示: 若在Microsoft Active Directory 中使用嵌套组搜索功能,必须禁用登录时的默认 LDAP 同步选项,并启用定期同步任务。 有关详细信息,请参阅《 将 IBM Software Hub 与您的 LDAP 服务器同步》。
  7. 要验证是否可以连接到 LDAP 服务器,请在测试连接部分中输入以下信息:
    字段 描述
    用户名 输入以下某个位置中存在的用户的用户名:
    • 用户搜索条件
    • 组搜索条件
    密码 输入指定用户的密码。
    注意: 这些凭据不会被保存。
  8. 点击测试连接
  9. 在验证可以连接到 LDAP 服务器后,单击保存

与您的 LDAPIBM Software Hub 服务器同步

IBM Software Hub 提供两种与您的 LDAP 服务器同步的选项:
登录时同步(缺省值)
这是缺省方法。 当使用此方法时,平台会在用户登录时同步每位用户的数据: IBM Software Hub
  • 用户首次登录 IBM Software Hub时,平台会创建用户档案,并根据其 LDAP 组成员身份为用户分配正确的用户组。
  • 如果用户之前已登录,那么平台将根据其 LDAP 组成员资格更新用户组成员资格。

这是适用于大多数环境的推荐方法。 如果要继续使用此方法,那么不需要执行其他操作。

定期同步作业
如果在 Microsoft Active Directory 中使用嵌套组,那么必须使用此选项。 然而,对于具有大型 LDAP 组的实例 IBM Software Hub 而言,此方法可能导致大量开销。

如果要使用此方法:

  1. Red Hat® OpenShift® Container Platform 项目管理员身份登录:
    oc login OpenShift_URL:port
  2. 通过运行以下命令,禁用“登录时同步”(LDAP_SYNC_ON_LOGIN):
    oc patch configmap product-configmap \
    --namespace=${PROJECT_CPD_INST_OPERANDS} \
    --patch '{"data": {"LDAP_SYNC_ON_LOGIN" : "false"}}'
  3. 删除 usermgmt pod:
    oc delete pod \
    --namespace=${PROJECT_CPD_INST_OPERANDS} \
    -l component=usermgmt
  4. 启用定期同步作业:
    oc patch cj usermgmt-ldap-sync-cron-job \
    --namespace=${PROJECT_CPD_INST_OPERANDS} \
    --patch '{"spec": {"suspend": false}}'

Identity Management Service 启用

可以在身份提供商页面配置与一个或多个身份提供商的连接。

  1. 登录到 IBM Software Hub Web 客户端。
  2. 从菜单中,点击管理 > 身份提供商
  3. 点击新建连接
  4. 选择 LDAP. 然后,单击下一步

    请遵循文档 IBM Cloud Pak foundational services 中《 配置 LDAP 连接 》部分的指导说明。

Identity Management Service 启用时,与您的 LDAPIBM Software Hub 服务器同步

IBM Software Hub 提供两种与您的 LDAP 服务器同步的选项:
登录时同步(缺省值)
这是缺省方法。 当使用此方法时,平台会在用户登录时同步每位用户的数据: IBM Software Hub
  • 用户首次登录 IBM Software Hub时,平台会创建用户档案,并根据其 LDAP 组成员身份为用户分配正确的用户组。
  • 如果用户之前已登录,那么平台将根据其 LDAP 组成员资格更新用户组成员资格。

这是适用于大多数环境的推荐方法。 如果要继续使用此方法,那么不需要执行其他操作。

定期同步作业
您可以配置 IBM Software Hub 以运行定期的 LDAP 同步任务。 然而,在以下情况下,这种方法可能会导致大量开销:
  • 您在 中创建 IBM Software Hub 的组包含多个 LDAP 组
  • 某些 LDAP 群组拥有大量用户(例如,这些群组拥有超过1,000名用户)。
在配置定期同步作业之前,请确保:
  • 您的 LDAP 服务器不会限制搜索返回的条目数量。
  • SCIM目录搜索的分页功能已启用。 (您可通过 Web IBM Software Hub 客户端查看 LDAP 的配置。)

要启用经期同步任务:

  1. Red Hat OpenShift Container Platform 项目管理员身份登录:
    oc login OpenShift_URL:port
  2. 确定是否需要覆盖 LDAP 同步作业的默认行为:
    • 默认情况下, LDAP 同步作业仅同步现有 IBM Software Hub 用户的组成员身份。 您可以覆盖此行为,自动接纳任何属于 LDAP 组且该组被包含在某个 IBM Software Hub 组中的用户。

      要自动将 LDAP 群组中的用户纳入系统,请在配置文件中将 SYNC_ALL_LDAPUSERStrueproduct-configConfigMap 参数设置为:

      oc patch configmap product-configmap \
      --namespace=${PROJECT_CPD_INST_OPERANDS} \
      --patch '{"data": {"SYNC_ALL_LDAPUSERS" : "true"}}'
    • 默认情况下, LDAP 同步任务会自动阻止所有不再属于 LDAP 服务器的用户。

      当用户被该任务阻止时,其个人资料将被更新。 用户个人资料中的属性 misc 包含以下字段{"blocked_from_ldap": true}

      为防止用户被自动屏蔽,请在 中将 BLOCK_STALE_LDAPUSERS falseproduct-configConfigMap 参数设置为 :

      oc patch configmap product-configmap \
      --namespace=${PROJECT_CPD_INST_OPERANDS} \
      --patch '{"data": {"BLOCK_STALE_LDAPUSERS" : "false"}}'
  3. 删除 usermgmt pod:
    oc delete pod \
    --namespace=${PROJECT_CPD_INST_OPERANDS} \
    -l component=usermgmt
  4. 启用定期同步作业:
    oc patch cj usermgmt-ldap-sync-cron-job \
    --namespace=${PROJECT_CPD_INST_OPERANDS} \
    --patch '{"spec": {"suspend": false}}'

    该任务每隔2小时运行一次。

  5. 确认 cron usermgmt-ldap-sync-cron-job 任务是否正在运行:
    oc get cj usermgmt-ldap-sync-cron-job \
    --namespace=${PROJECT_CPD_INST_OPERANDS}

    该命令返回的输出格式如下:

    NAME                          SCHEDULE       TIMEZONE   SUSPEND   ACTIVE   LAST SCHEDULE   AGE
    usermgmt-ldap-sync-cron-job   */20 * * * *   <none>     False     0        5h51m           146d

    确保 SUSPENDFalse

  6. 等待两小时后确认该 usermgmt-ldap-sync 作业是否创建成功:
    oc get job --namespace=${PROJECT_CPD_INST_OPERANDS} | grep usermgmt-ldap-sync