IBM Cloud Docs
从外部身份提供者启用认证

从外部身份提供者启用认证

您可以与外部身份提供者 (IdP) 集成,以安全地向 IBM Cloud® 帐户认证外部用户。 通过使用IdP,您可以为公司用户提供使用单点登录(SSO)的方法。 将云帐户与您选择的 IBM Cloud App ID 实例连接使其成为可能。

IBM Cloud 中一种更常用的认证方法,用于通过注册公司的域来联合所有 IBM 产品,并且没有使用费用是 IBMid 联合。 通过 IBM 注册公司域名,用户可以使用现有的公司用户凭证登录 IBM 产品和服务。 然后,贵公司的 IdP 将通过单点登录(SSO)处理认证。 有关如何为公司注册联合身份的信息,请参阅 《 IBMid 企业联合身份采用指南 》。 当您申请注册联合身份时,需要一位 IBM 赞助商,例如产品或客户代言人。

要开始为企业联合设置 IBMid,请在 ibm.com/mysupport 上打开案例并选择 IBMid Enterprise Federation 作为产品。

如果选择通过 IAM 使用外部 IdP 引用,那么每个帐户最多可以通过控制台的“访问 (IAM)”部分中的“身份提供者”页面添加 5 个 IdP 引用。 通过选择要与 IAM 集成的 App ID 实例来设置 IdP 引用。 然后,将为 IdP 引用提供一个随机域标识,该标识是该 App ID 服务实例的用户的唯一前缀。

在“App ID实例与”IdP,和“IBM Cloud账户之间设置集成后,您就可以继续从外部管理”IdP中的所有用户。 它还简化了登录到企业中用户的云帐户的过程。 整合完成后,您必须为您的用户提供自定义的 URL,供他们每次登录时使用。 无需邀请任何人访问您的帐户,因为如果他们在您关联的 IdP's 用户库中存在,则可以通过自定义的 URL 使用他们的凭据登录。

准备工作

  • 要决定哪个是适合您的联合选项,请检查 IBM Cloud SAML 联合指南
  • 从 IBM Cloud 目录中创建 App ID 的实例。 有关更多信息,请参阅入门教程
  • 配置您的 App ID 实例。 有关如何根据您的用例执行此操作的更多信息,请参阅有关 管理认证 的 App ID 文档。
  • 确保您具有查看和管理 IdP 引用所需的访问权 (如果您不是帐户所有者)。 必须为您分配 App ID 实例上的操作员角色或更高角色以及 IAM Identity Service 上的操作员或管理角色。

配置 App ID 实例以进行 IAM 集成

查看有关必须如何配置 App ID 实例以作为 IBM Cloud 帐户的 IAM 身份提供者 (IdP) 正常工作的以下需求。

如果计划将 App ID 实例用于 IAM IdP 集成,那么任何用户都可以登录到可以向该 App ID 实例认证的帐户。 因此,在配置实例时,请考虑遵循以下准则:

禁用以下类型的认证:

  • Facebook
  • Google
  • IBMid
  • 匿名

如果您决定使用 Cloud Directory 作为认证方法,请禁用用户通过应用程序注册的选项,而只将已知用户单独添加到 Cloud Directory

在 App ID 令牌中设置特定于 IAM 的属性

要使 IAM 与外部“IdP,正常工作,必须确保”App ID实例提供所有必需的属性。 请参阅下表以了解必需属性:

App ID标记的必要属性
属性 App ID 标识令牌声明 描述
标识 (必需) 标识 已生成 App ID 用于标识用户的唯一标识。 无法在该用户的生命周期内进行更改。App ID 创建此标识。
电子邮件 (必填) email 从 SAML 断言 "email" 映射,这对于 Cloud Directory 和 SAML 配置是必需的。 此用户的电子邮件地址。
用户名 (建议) preferred_username (如果存在),否则为 sub 由 SAML 断言 "preferred_username"、"username"、"user_name "或 ""userName"(如有)映射而来。 否则,将使用 App ID 生成的 "sub" 声明 使用 CLI,API 或 IBM Cloud Kubernetes Service时,将显示用户名。 用户名通常是电子邮件地址,但也可以是不同的值。 如果 App ID未提供用户名,那么 IAM 将改为使用标识。
名字 (建议) given_name (如果可用),否则 "notset" 为缺省值 从 SAML 断言 "given_name"、"givenname"、""givenName","映射到 "first_name"、"firstname "或 ""firstName""(如果有),否则 IAM 使用常量 "notset" 登录的用户的名字。
姓氏 (建议) 家庭名称 (如果可用),否则将 "notset" 作为缺省值 从 SAML 断言 "family_name"、"familyname"、""familyName","(如果有)"last_name"、"lastname "或 ""lastName"映射,否则 IAM 使用常量 "notset" 登录的用户的姓氏。
名称(可选) 名称 (如果存在),否则由第一个名称,空格和姓氏构建 没有来自 SAML 的自动映射 全名,包括中间的首字母,标题或名字和姓氏未涵盖的任何内容

当用户使用 IBM Cloud 帐户中的 App ID 服务实例成功进行认证时,该用户将自动添加到帐户。 缺省情况下,添加的用户不会分配任何访问策略。 但是,通过使用 访问组动态规则,可以设置自动分配的访问策略。

启用和连接身份提供者

如果您之前在帐户中未配置任何 IAM IdP 引用,那么必须首先启用帐户的登录设置。

  1. 启用帐户的登录设置。 如果已启用此设置,那么可以跳过此步骤。

    1. 转至 IBM Cloud 控制台中的 Manage > Access (IAM) > 身份提供者,然后单击 启用
    2. 为默认账户 URL 输入一个别名,您将此别名提供给用户,以便其登录您的账户。

    由于您与外部用户共享 URL,请确保别名唯一且简单。 通用格式可能是使用公司名称或其变体。

  2. 单击 创建 以创建 IdP 引用。

  3. 输入 IdP 引用的名称,然后选择要连接的 App ID 实例。

  4. 选择您希望用户如何登录:

    • 静态:(默认)当每个用户首次登录时将其添加到您的账户中。
    • 动态:仅当用户登录且未选择可信资料时,才将用户添加到您的帐户中。
    • 从不: 用户不会添加到您的帐户,但可以使用可信概要文件访问您的帐户。 有关可信概要文件的更多信息,请参阅 创建可信概要文件

    如果您已将“加载”设置为“静态”,并且用户在首次登录时选择了可信概要文件,那么仍会将用户添加到帐户。

  5. 然后,选择以下设置 (可选):

    • 启用账户登录? 启用 IdP 引用以用于用户登录到您的帐户。 缺省情况下,当您首次创建 IdP 引用时设置此选项。
    • 设置为默认值? 用户可以使用启用此功能时创建的默认参考 IdP URL 登录账户。 您只能有一个默认的 IdP 参考。 对于您创建的所有其他 IdP 引用,用户必须使用领域ID登录。
  6. 单击创建

IdP 引用现在在身份提供者列表中可用,并且将自动生成域标识作为表示 IBM Cloud中 IAM IdP 的值。

使用外部身份提供者凭证登录

在您的App ID实例连接到IdP,并将App ID实例与 IAM 集成后,用户就可以开始登录您的账户了。 如果将 IdP 设置为默认参考,则您可以为您的账户共享默认的 IdP URL

然而,由于您只能设置一个默认设置,但您的账户中最多可以有五个设置,因此您可能需要获取 URL,以便为另一个 IdP 提供参考:

  1. 在身份提供商页面中,点击操作图标 操作图标列表 IdP 参考行,您需要一个 URL。
  2. 选择查看 IdP URL。
  3. 复制 IdP URL 链接,供用户登录。

使用 App ID 实例在访问组中构建动态规则

除了必需属性和建议属性外,您还可以通过 SAML 断言传递任何类型的信息。 这些属性可供您在 访问组中的动态规则 中使用。

要成功构建动态规则,需要以下信息:

  • 身份提供者: 使用前缀 appid:// 和 IAM IdP中的域标识。 例如,如果用户的域标识为 A1B2C3D4,那么为 appid://A1B2C3D4
  • 在以下情况下添加用户: 使用其他 SAML 断言的名称。 此属性将以未更改的方式传递。
  • 如果要使用 Cloud Directory 选项或 App ID中的 SAML 联合选项,请注意可以向每个用户的概要文件添加定制属性。 您也可以将这些属性用于动态规则。 但是,如果您具有与定制属性和 SAML 断言相同的属性,那么将使用 SAML 断言中的定制属性。

IBM Cloud Kubernetes Service 直至发行版 1.18 依赖于帐户中的唯一用户名。 要正确工作,必须确保所有用户名在所有 IdPs中都是唯一的。 这意味着您必须确保从 IBMid 加载到您的帐户的用户名和通过 IAM IdP 加载到您的帐户的用户不会重叠。 否则,IBM Cloud Kubernetes Service RBAC 规则可能会混淆并提供不正确的许可权。

如果使用外部IdP,建议只连接一个外部IdP,并让用户通过该IdP 自动登录。

请勿使用 IBM Cloud 邀请流程来邀请用户,因为这仅适用于具有 IBM 标识的用户。 如果您对帐户使用了 IBM Cloud 邀请,那么最终将混合使用来自 IBMid 的用户以及从外部 IdP自动加载的用户。 这很容易造成混淆,因为 IBMid 用户通过 IBM Cloud 网站登录,而外部 IdP 用户必须使用特殊的 URL 登录。 这可能会导致一个账户中出现重复的用户名,由于前面提到的 Kubernetes Service 的限制,我们不鼓励这样做。

使用 IdP 数据来构建可信概要文件

启用并连接“IdP,后,即可启动”创建可信档案。 要与联合用户建立信任,您可以使用 IdP 中的个人数据来搜索组织中存在的属性名称和值。

如果要创建可信概要文件以使用 IBM Cloud App ID的用户,那么您应该以 App ID 用户身份创建可信概要文件,同样应该为 IBMid创建可信概要文件。 这样,您自己的 SAML 属性可以让您了解如何构造可信概要文件条件。 具有相同 IdP 的其他用户可以具有不同的 SAML 属性,您应该仅使用自己的 SAML 属性作为提示。 要在声明中使用不同于您自己的属性,请手动输入这些属性。

您创建的过滤条件或允许联合用户应用可信概要文件,具体取决于在公司用户目录中指定联合用户的属性。 创建可信概要文件时,可以查看 IdP 数据,以从组织公司用户目录查看您自己的用户声明。

假设有一个名为 groups 的属性,用于识别贵公司内部的部门,团队和更细粒度的内部组织。 如果财务团队中的美国开发人员需要对项目具有相同级别的访问权,那么您可以创建具有以下条件的可信概要文件:

  • groups 等于 finance-dev 时允许用户
  • country 等于 us 时允许用户

要确保您的条件仅允许您打算授予其访问权的联合用户,请联系公司目录架构设计师以获取有关可用属性的更多信息。

有关用于创建条件的字段的更多信息,请参阅 IAM 条件属性

建议创建窄条件。 您与组织中的其他成员共享相同的 IdP URL,因此如果索赔规则过于宽松,则可能会无意中允许用户应用可访问您帐户的可信配置文件。