对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

从 PingOne 配置 Workforce Identity Federation

本指南向您介绍如何使用 PingOne 作为 IdP 来配置 Workforce Identity Federation。

集成 PingOne 和Atlas后,您的员工可以使用其 PingOne凭证通过 OIDC身份验证访问权限Atlas集群。

如需管理联合身份验证,必须拥有 Organization Owner 访问权限,能够访问一个或多个将联合设置委托给实例的组织。

要将 PingOne 用作 Atlas 的IdP ,您必须拥有:

  • PingOne订阅。要获取订阅,请访问 PingOne。

  • 具有管理权限的 PingOne 用户。要授予用户管理权限,请参阅管理管理员。或者,您可以使用在激活 PingOne 帐户时创建的默认管理用户。

在以下过程中,为Atlas Federation 管理控制台打开一个浏览器标签页,并为 PingOne 帐户打开一个标签页会很有帮助。

使用 PingOne 管理控制台将 PingOne 配置为 OIDC IdP。

1
  1. 在 PingOne 管理控制台中,转到 Applications > My Applications > OIDC。

  2. 单击 Add Application(连接)。

  3. 选择 Native App,然后单击 Next。

要学习;了解更多信息,请参阅添加或更新 OIDC应用程序。

2
  1. 在 Application Name字段中,输入应用程序的名称。

  2. 在 Short Description字段中,输入应用程序的说明。

  3. 在 Category 列表中,选择要为其分配应用程序的类别。

  4. 单击 Next(连接)。

3
  1. 选择应用程序允许的授权类型。

    启用以下授权类型:

    • Authorization Code or Device Authorization

    • (可选) Refresh Token

      启用刷新令牌可提供更好的用户体验。 如果未启用刷新令牌,则一旦访问权限令牌过期,用户就必须向身份提供商重新进行身份验证。

  2. 在 Redirect URIs字段中,输入以下URL:http://localhost:27097/redirect。

  3. 单击 Next(连接)。

4
  1. 将 openid 范围添加到允许列表。

  2. 向 Default User Profile Attribute Contract 添加属性。

    所有应用程序都需要 sub 属性。

    要使用基于群组的授权,请添加 groups 属性。

  3. 单击 Next(连接)。

5

将身份存储库属性映射到应用程序提出的声明。

  1. 对于每个 IdP 属性,输入或从列表中选择目标属性。

  2. 单击 Next(连接)。

6
  1. 单击要授权的每个群组的图标。

  2. 单击 Done(连接)。

7

创建应用程序后,从应用程序摘要页面复制以下值:

  • Discovery URL or Issuer

  • Client ID
  • IDPID (如果显示)

颁发者 URI 通常遵循以下格式:https://auth.pingone.com/<environment-id>/as。

保存这些值以在Atlas配置的下一阶段使用。

注意

先决条件

此过程要求您拥有 Organization Owner访问权限,并假设您已在 IdP 中创建 OIDC应用程序。要学习;了解如何配置 IdP,请参阅将 PingOne 配置为身份提供者。

要在Atlas中配置劳动力身份提供程序,请执行以下操作:

1
  1. 如果尚未显示,组织从导航栏中的Organizations菜单。

  2. 在侧边栏中,单击 Identity & Access 标题下的 Federation。

  3. 单击 Open Federation Management App(连接)。

显示“联合”页面。

2
  1. 单击左侧边栏中的Identity Providers 。

  2. 执行以下步骤之一:

    • 如果您尚未配置任何身份提供程序,单击 Set Up Identity Provider(设置身份提供程序)。

    • 否则,在Identity Providers屏幕上单击Configure Identity Provider(s) 。

  3. 选择 Workforce Identity Federation,然后单击 Continue。

  4. 选择 OIDC for Data Access 。

3
设置
必要性
值
Configuration Name

必需

标识此配置的人类可读标签。 此标签对Atlas用户可见。

Configuration Description

Optional

描述此配置的人类可读标签。

Issuer URI

必需

已注册的 IdP应用程序提供的发行者值。 MongoDB使用此 URI 查找 OpenID 提供程序配置文档,该文档应在 /.well-known/openid-configuration 端点中可用。

Client ID

必需

已注册应用程序的唯一标识符。 输入您在外部身份提供程序中注册的应用的clientId值。

Audience

必需

外部身份提供商打算为其提供令牌的实体。 输入您在外部身份提供程序中注册的应用的audience值。 通常,此值与Client ID相同。

Requested Scopes

Optional

授予用户从授权端点请求数据权限的令牌。 如果计划支持刷新令牌,则此字段必须包含值offline_access 。

对于要添加的每个附加作用域,请单击 Add more scopes(添加更多作用域)。

Authorization Type

必需

选择 Group Membership 以根据 IdP 用户群组成员身份授予授权,或选择 User ID 以向单个用户授予授权。

Customize Groups Claim

必需

包含主体的 IdP 用户群组成员信息的声明的标识符。接受默认值,除非 IdP 使用不同的声明,或者您需要自定义声明。仅当您选择 Group Membership 时才需要此字段。

默认值:groups

Customize User Claim

必需

包含用户主体身份的声明的标识符。 接受默认值,除非IdP使用不同的声明。

默认值:sub

4
5

注意

仅当您需要将多个 Workforce 身份提供程序 连接到具有不同域的同一组织时,才需要执行此步骤。Atlas最多支持将两个 Workforce 身份提供程序连接到一个组织:一个 OIDC 身份提供程序(用于数据库访问权限)和一个 SAML 身份提供程序(用于用户界面访问权限)。

  1. 在“劳动力身份提供程序”卡中,单击Associate Domains 。

  2. 在 Associate Domains with Identity Provider(将域与身份提供程序相关联)模式中,选择一个或多个域。

  3. 单击 Submit(连接)。

6
  1. 单击 Connect Organizations(连接)。

  2. 对于要连接到 Workforce Identity Provider 的组织,请单击Configure Access 。

  3. 单击 Connect Identity Provider(连接)。

    注意

    如果您配置了其他 IdP,此按钮会显示 Connect Identity Provider(s)。

7

在Connect Identity Provider(s)模式中,选择Purpose为Workforce Identity Federation的劳动力身份提供者。

8

当您将 Workforce Identity Provider 连接到组织时, Atlas会为该组织内的所有项目启用 Workforce Identity Provider。

1
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。

  2. 如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。

  3. 在侧边栏中,单击 Security 标题下的 Database & Network Access。

数据库和完成上述步骤后,将显示“网络访问”页面。

2

单击 Add New Database User or Group(添加新的数据库用户)。

注意

在将 Workforce IdP 应用到 Atlas 之前,此按钮显示 Add New Database User。

3

在 Authentication Method 部分,选择 Federated Auth。

注意

在为组织启用 Workforce IdP 之前,您无法选中此复选框。

4

在 Select Identity Provider 部分中,选择已配置的 OIDC 身份提供者。

指定与您配置的 Workforce 身份提供程序关联的用户标识符或群组标识符。

注意

对于 Azure Entra ID 用户,此值映射到 Azure 用户组的 Object Id,而不是用户组名称。

5

要向新用户或群组分配权限,请执行以下一项或多项任务:

  • 从 Built-in Role 下拉菜单中,选择一个内置角色。

    • 您可以在 Atlas 用户界面中为每个数据库组选择一个内置角色。

    • 如果删除默认选项,则可以单击Add Built-in Role选择新的内置角色。

  • 选择或添加自定义角色。

    • 如果您定义了任何自定义角色,则可以展开Custom Roles部分,然后从Custom Roles下拉菜单中选择一个或多个角色。

    • 单击Add Custom Role以添加更多自定义角色。

    • 单击Custom Roles链接可查看项目的自定义角色。

  • 添加权限。

    • 展开Specific Privileges部分,然后从Specific Privileges下拉菜单中选择一个或多个权限。

    • 单击Add Specific Privilege可添加更多权限。 这将为群组分配对各个数据库和集合的特定权限。

  • 删除已应用的角色或特权。

    • 单击Delete旁边

      要删除的角色或特权。

    注意

    如果只选择了一个选项,Atlas 不会在 Built-in Role(内置角色)、Custom Role(自定义角色)或 Specific Privilege(特定权限)选项旁边显示 Delete(删除)图标。应用了其他角色或权限后,就可以删除选定的角色或权限。

Atlas 可以将一个内置角色、多个自定义角色和多个特定权限应用到 数据库群组。

要了解有关授权的更多信息,请参阅 MongoDB 手册中的基于角色的访问控制和内置角色。

6

默认情况下,群组可以访问项目中的所有集群和联合数据库实例。 要限制对特定集群和联合数据库实例的访问,请执行以下操作:

  1. 将 Restrict Access to Specific Clusters/Federated Database Instances 切换到 On。

  2. 从 Grant Access To(向其授予访问权限)列表中选择要向该群组授予其访问权限的集群和联合数据库实例。

7

将Temporary User或Temporary Group切换为On ,然后选择一个时间,在此时间之后 Atlas 可以从Temporary User Duration或Temporary Group Duration下拉列表中删除用户或群组。 您可以选择以下时间段之一作为群组的存在时间:

  • 6 小时

  • 1 天

  • 1 周

在Database Users标签页中,临时用户或临时群组会显示 Atlas 删除这些用户或群组之前的剩余时间。 Atlas 删除用户或群组后,使用临时用户或群组档案的任何客户端或应用程序都将失去对集群的访问权限。

8

执行以下步骤之一:

  • 如果已添加用户,请单击Add User按钮。

  • 如果已添加群组,请单击Add Group按钮。

下面列出了使用 Workforce Identity Federation身份验证将客户端连接到MongoDB 的方法:

注意

如果配置了设备授权流,则在与mongosh连接时必须传递 --oidcFlows=device-auth 标志。示例:

mongosh "<connection-string>" \
--authenticationMechanism MONGODB-OIDC \
--oidcFlows=device-auth