API Manager 用户角色上配置 LDAP 组映射

作为 API Manager 管理员,您可以使用 developer toolkit CLI 在提供者组织中的 API Connect 角色上配置 LDAP 组映射。

准备工作

您必须在 API Manager 中具有将 external_group_mapping_enabled 配置设置为 true的 LDAP 用户注册表资源。 请参阅 使用 CLI 创建特定于组织的 LDAP 用户注册表 以获取信息。

需要以下一个角色才能编辑角色:

  • 管理员
  • 所有者
  • 定制角色Settings: manage许可权
注: 提供者组织角色仅适用于 API Manager 用户。 如果要将 LDAP 组映射应用于 Cloud Manager 用户,请参阅 Cloud Manager 用户角色上配置 LDAP 组映射。 LDAP 组映射无法应用于 Developer Portal 用户。

关于此任务

您可以将外部 LDAP 组映射到 API Connect 预配置的用户角色 (所有者和成员角色除外) 以及任何定制用户角色,以反映您的业务需求。

注释:
  • 在角色上启用 LDAP 组映射后,用户引导将始终采用组映射。
  • 登录后, API Connect 中的用户成员资格在整个登录时间段 (access_token_ttl) 内有效,而不考虑外部 LDAP 注册表中的任何更改。 仅在访存并刷新 LDAP 信息后,才会在下次登录时更新成员资格。
  • 一个或多个 API Connect 角色可以映射到一个或多个 LDAP 组,一个或多个 LDAP 组可以映射到角色。
  • 当多个 LDAP 组映射到单个角色时,这意味着任何一个 LDAP 组中的用户都可以登录到 API Connect
  • 如果从外部 LDAP 用户注册表中除去用户,那么为了确保从 API Connect 中快速除去用户,还必须删除 API Connect中的用户成员资格。
  • API Manager 中,您可以在提供者组织,目录和 (如果适用) 空间级别映射角色。 但是,如果父级也定义了组映射,那么只能在目录的子级上映射角色,然后在目录的子级空间上映射角色。 子级上的的映射会覆盖父级上同一角色的映射。 例如:

    如果提供者组织级别的管理员角色映射到 cn=APIC-Administrators,ou=ibmgroups,o=ibm.com 的 LDAP 组,并且目录级别的管理员角色映射到 cn=APIC-Developers,ou=ibmgroups,o=ibm.com 的 LDAP 组,那么添加为目录成员的任何用户都必须属于 cn=APIC-Developers,ou=ibmgroups,o=ibm.com 组。 请注意,由于继承,属于 cn=APIC-Administrators,ou=ibmgroups,o=ibm.com 组的提供者组织级别成员仍可访问目录。

您可以使用下列其中一种方法来配置 LDAP 组映射:

使用 UI 配置 LDAP 组映射

使用 API Manager UI 来配置 LDAP 组映射。

过程

  1. 以具有相应许可权的用户身份登录到 API Manager。
  2. 单击 设置 > 角色 > 添加新角色或编辑现有角色
  3. 选择以下设置:
    • 启用外部组映射 -选择此项以启用此角色的外部组映射。
    • LDAP 用户注册表 -已启用外部组映射的 LDAP 用户注册表列表。 用户必须从此列表中选择其中一个 LDAP 用户注册表。
    • LDAP 组名 -添加要映射到用户角色的一个或多个 LDAP 组名。
    • 用户组前缀 -添加 LDAP 用户组的前缀。
    • 用户组后缀 -添加 LDAP 用户组的后缀。
  4. 保存更改。

结果

将使用 LDAP 组映射信息更新角色。 现在,用户可以登录到 API Manager,并自动为其角色分配正确的访问许可权。

使用 CLI 配置 LDAP 组映射

使用工具箱 CLI 来配置 LDAP 组映射。

关于此任务

有关如何使用 CLI 的详细信息,请参阅 安装工具箱命令行工具概述

过程

执行以下步骤以将外部 LDAP 组映射到 API Manager 用户角色。
  1. 登录到管理服务器 CLI。
    必须先从 developer toolkit CLI 作为提供者组织的成员登录到管理服务器,然后才能更新角色配置。 使用以下命令:
    apic login --server mgmt_endpoint_url --username user_id --password password --realm provider/identity_provider
    其中 mgmt_endpoint_url 是平台 API 端点 URL。
    通过输入以下命令查看所有可用身份提供者的列表(无需登录即可使用此命令),可以确定要在 --realm 参数中使用的身份提供者:
    apic identity-providers:list --scope provider --server platform_api_host_name --fields title,realm
    例如
    apic identity-providers:list --scope provider --server platform_api_host_name --fields title,realm 
    total_results: 2
    results:
      - title: API Manager User Registry
        realm: provider/default-idp-2
      - title: Corporate LDAP user registry
        realm: provider/corporate-ldap
    您可通过 title 值确定要使用的身份提供者;然后,可以直接从显示的 realm 值复制对应的 --realm 参数。 对于管理员在安装 API Connect 之后创建的任何身份提供者,将在创建时确定名称。 用于以提供者组织成员身份登录的缺省 API Manager 本地用户注册表为 default-idp-2

    有关登录命令的完整详细信息,请参阅 登录到管理服务器

  2. 运行以下命令,获取要将用户角色映射到的 API 管理器中 LDAP 用户注册表资源的 URL :
    apic user-registries:get  ldap_user_registry --org organization_name --server mgmt_endpoint_url --output -
    其中:
    • ldap_user_registry 是 LDAP 用户注册表资源的名称或标识。
    • organization_name 是提供者组织的 name 属性值。
    • mgmt_endpoint_url 是平台 API 端点 URL。
    此命令输出 LDAP 用户注册表的配置详细信息,并在列表末尾显示 url:,例如:
    type: user_registry
    api_version: 2.0.0
    id: 35e75bad-1d89-4a65-a70f-xxxxxx
    name: ldap
    title: LDAP
    integration_url: >-
      https://server.com/api/cloud/integrations/user-registry/147b5fb1-e88e-41e3-90e9-xxxxxx
    registry_type: ldap
    user_managed: false
    user_registry_managed: false
    external_group_mapping_enabled: true
    ...
    url: >-
      https://server.com/api/user-registries/3d58ce7e-16a8-493b-9684-xxxxxx/35e75bad-1d89-4a65-a70f-xxxxxx
  3. 创建包含以下 LDAP 组映射配置属性的角色 yaml 文件:
    external_group_mapping:
      user_registry_url: https://server.com/api/user-registries/3d58ce7e-16a8-493b-9684-xxxxxx/35e75bad-1d89-4a65-a70f-xxxxxx
      ldap_groups:
        - 'cn=apic-administrators,ou=ibmgroups,o=ibm.com'
        - 'cn=apic-developers,ou=ibmgroups,o=ibm.com'
      user_group_filter_prefix: (&(uniquemember=
      user_group_filter_suffix: )(objectClass=groupOfUniqueNames))
    其中:
    • user_registry_url 是步骤 #task_apim_role_mapping__ldap_url 中 LDAP 用户注册表资源的 URL。
    • ldap_groups 是要映射到用户角色的 LDAP 组名的列表。
    • user_group_filter_prefix 是 LDAP 用户组的前缀。
    • user_group_filter_suffix 是 LDAP 用户组的后缀。
  4. 运行以下命令以使用 external_group_mapping 配置属性更新用户角色:
    apic roles:update role_name --scope org --org organization_name --server mgmt_endpoint_url mapping_properties_file
    其中:
    • role_name 是要将 LDAP 组映射添加到的用户角色的名称。
    • --scope 是要将更新应用到的组织级别。 有效值为:
      • org,用于在提供者组织级别应用映射。
      • catalog,用于在目录级别应用映射。
      • space,用于在空间级别应用映射。
    • organization_name 是提供者组织的 name 属性值。
    • mgmt_endpoint_url 是平台 API 端点 URL。
    • mapping_properties_file 是来自步骤 #task_apim_role_mapping__role_file的映射属性文件的名称,例如 role_mapping_file.yaml
    如果您希望在命令行上以交互方式输入配置属性,那么可以将 mapping_properties_file 替换为终止连字符 -,然后手动输入信息,然后按 CTRL D 以终止输入。

    如果要创建包含 LDAP 组映射的定制角色,可以在 role_file中包含 external_group_mapping 配置部分,然后使用 apic roles:create 命令创建新角色。

有关 apic roles 命令的更多信息,请参阅 工具箱 CLI 参考文档

结果

将使用 LDAP 组映射信息更新角色。 现在,用户可以登录到 API Manager,并自动为其角色分配正确的访问许可权。