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

通过 OIDC 设置 Workforce Identity Federation

在MongoDB 7.0 及更高版本中,劳动力身份联合允许您使用外部身份提供者 (IdP)(例如公司 IdP)对特定劳动力(例如员工、合作伙伴和承包商)进行身份验证和授权。

通过 Workforce Identity Federation,您可以:

配置外部 IdP 并将其一次添加到 Workforce Identity Federation 后,您可以为多个Atlas组织启用Workforce Identity Provider。在给定组织中启用Workforce Identity Federation 后,您可以在该组织的所有项目中使用它来访问权限数据库。

运行MongoDB 7.0.11及更高版本的Atlas专用集群(M 10及更高版本)支持 Workforce Identity Federation。 您需要使用MongoDB Shell或Compass来访问权限具有 Workforce Identity Federation 的Atlas 。

要学习;了解有关实施 Workforce Identity Federation访问权限的更多信息,请参阅使用 Workforce Identity Federation 将客户端连接到MongoDB 。

要管理Workforce Identity Federation 配置,您必须拥有Atlas的Organization Owner访问权限。

要使用 Workforce Identity Federation访问权限Atlas集群,请完成以下步骤:

  1. 授予外部身份(用户主体)或群组访问权限MongoDB集群的权限。

  2. 使用MongoDB Shell或Compass对Atlas集群进行身份验证。

要使用 OIDC 配置 Workforce Identity Federation,请向支持 OIDC 标准的 IdP(例如Microsoft Entra ID 、Okta 或 Ping Identity)注册您的 OIDC应用程序。

有关配置特定身份提供程序的分步说明,请参阅:

注意

Workforce Identity Federation 仅支持使用 JSON web token 进行身份验证。 它不支持不透明访问令牌。

您可以为以下授权类型配置 OIDC应用程序:

  • 使用 PKCE 的授权代码流

  • 设备授权流程

MongoDB建议您将授权代码流与 PKCE 结合使用以提高安全性。仅当用户需要从没有浏览器的计算机上访问权限数据库时,才使用设备授权流程。

注意

如果您的身份提供商是Microsoft Entra ID并且您使用设备授权流程,则必须在Azure应用注册中启用Allow public client flows。要学习;了解如何启用此设置,请参阅Azure文档。

OIDC应用程序注册步骤可能因 IdP 而异。确保在注册进程中完成以下事项:

1

选择public client/native application作为客户端类型。

2
3

对于群组,此步骤可确保您的访问令牌包含进行身份验证的用户的群组成员信息。 MongoDB 使用群组声明中发送的值进行授权。

4

(可选)如果希望 MongoDB 客户端刷新令牌以获得更好的用户体验, 则允许刷新令牌。

5

(可选)配置访问令牌生命周期( exp声明)以与数据库连接会话时间保持一致。

注册应用程序后,保存 issuer、clientId 和 audience 值,以在Atlas Workforce IdP 配置的下一阶段使用。

要使用Microsoft Entra ID注册您的 OIDC应用程序:

1
  1. 导航至 App registrations。

    1. 在左侧导航栏的 Manage 部分,单击 App registrations。

  2. 单击 New registration(连接)。

  3. 应用以下值。

    字段
    值

    Name

    Atlas Database - Workforce

    Supported Account Types

    Accounts in this organizational directory only (single tenant)

    Redirect URI

    - Public client/native (mobile & desktop)
    - http://localhost:27097/redirect

  4. 单击 Register(连接)。

要学习;了解有关注册应用程序的更多信息,请参阅Azure文档。

2
  1. 导航至 Token Configuration。

    在左侧导航栏的 Manage 部分,单击 Token Configuration。

  2. 单击 Add groups claim(连接)。

  3. 在 Edit groups claim 模式中,选择 Security groups。

    所选择的群组取决于您在 Azure 环境中配置的群组类型。 您可能需要选择不同类型的群组 来发送相应的群组信息。

  4. 在Customize token properties by type部分中,仅选择Group ID 。

  5. 单击 Add(连接)。

要学习;了解有关添加群组声明的更多信息,请参阅Azure文档。

3
  1. 单击 Add optional claim(连接)。

  2. 在 Add optional claim 模式中,选择 Access。

  3. 选择带有用户标识符的声明,您可以在 MongoDB 访问 日志(如电子邮件)中引用该标识符。

    您可以使用 UPN 声明通过电子邮件解决来识别用户。

  4. 单击 Add(连接)。

  5. 在 Microsoft Graph Permissions(Microsoft Graph 权限)注释中,选中复选框,然后单击 Add(添加)。

要学习;了解详情,请参阅Azure文档。

4
  1. 在左侧导航栏的 Manage 部分,单击 Manifest。

  2. 将 requestedAccessTokenVersion 从 null 更新为 2。

    数字 2 代表 Microsoft 访问令牌版本 2。其他应用程序可以将其用作 Active Directory 托管用户身份的签名证明。版本 2 确保令牌是 MongoDB 可理解的 JSON 网络令牌。

  3. 单击 Save(连接)。

要学习;了解有关添加可选声明的更多信息,请参阅Azure文档。

5
  1. 在左侧导航栏中单击 Overview。

    复制 Application (client) ID(应用程序(客户端)ID)值。

  2. 在顶部导航栏中,单击 Endpoints。

    复制不带 /.well-known/openid-configuration 部分的 OpenID Connect metadata document 值。

    您还可以通过复制 OpenID Connect metadata document URL中 issuer 的值来获取此值。

下表显示这些 Microsoft Entra ID 用户界面值在我们的 Atlas 配置属性中映射的内容:

Microsoft Entra ID UI
Atlas 配置属性

Application (client) ID

Client ID
Audience

OpenID Connect metadata document (without /.well-known/openid-configuration)

Issuer URI

注意

先决条件

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

要在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 。

如果您的身份提供商是Microsoft Entra ID,则Atlas需要此设置。 添加默认范围,即<application client id>/.default 。

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

Authorization Type

必需

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

Customize Groups Claim

必需

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

默认值:groups

Customize User Claim

必需

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

默认值:sub

如果您的身份提供程序是Microsoft Entra ID并且您选择 User ID 作为 Authorization Type,则可以使用以下值之一:

  • upn:当您的Atlas数据库用户配置了用户主体名称 (UPN) 时使用。

  • oid:在为Atlas数据库用户配置了对象ID时使用。

4
5

注意

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

  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
1
  1. 如果尚未显示,组织从导航栏中的Organizations菜单。

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

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

显示“联合”页面。

2

您可以查看所有已配置的身份提供程序及其详细信息。

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

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

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

显示“联合”页面。

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

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

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

显示“联合”页面。

2

您可以查看所有已连接的组织并管理其配置。

注意

仅当您管理自己的签名密钥时才使用以下过程。

请勿使用此功能轮换您的签名密钥。 轮换劳动力身份提供者签名密钥时, MongoDB会在现有访问权限令牌过期时自动获取 JWKS。

如果您的私钥遭到泄露,您可以立即撤销缓存在 MongoDB 节点中的 JSON Web 密钥集 (JWKS):

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

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

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

显示“联合”页面。

3
4
5
6

单击 Revoke 后, MongoDB将通过 JWKS 端点获取新密钥。撤销 JWKS 后,您必须重新启动客户端(例如 mongosh 或Compass )。

要删除Workforce Identity Provider 配置,请执行以下操作:

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

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

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

显示“联合”页面。

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

  2. 单击已启用 Workforce Identity Federation 的组织。

  3. 单击 Workforce Identity Federation 卡上Manage下拉菜单下的Disconnect 。

  4. 在 Disconnect identity provider? 模式中,单击 Disconnect。

    当您断开 IdP 的连接时,使用 IdP 进行身份验证的用户将无法访问权限Project 表中列出的Atlas项目中的 Workforce Identity Federation。

3
4
5

在 Delete Identity Provider? 模式中,单击 Delete。

您可以使用Atlas CLI管理组织的 Workforce Identity Federation 配置。

要使用Atlas CLI创建 OIDC 身份提供程序,运行以下命令:

atlas federatedAuthentication federationSettings identityProvider create oidc [displayName] [options]

要学习;了解有关命令语法和参数的更多信息,请参阅有关 atlas federatedAuthentication federationSettings identityProvider create oidc 的Atlas CLI文档。

要使用Atlas CLI将身份提供程序连接到组织,运行以下命令:

atlas federatedAuthentication federationSettings connectedOrgConfigs connect [options]

要学习;了解有关命令语法和参数的更多信息,请参阅 atlas federatedAuthentication federationSettingsconnectedOrgConfigs connect 的Atlas CLI文档。

要列出所有身份提供程序,请执行以下操作:

要使用Atlas CLI列出联合设置中的身份提供程序,运行以下命令:

atlas federatedAuthentication federationSettings identityProvider list [options]

要学习;了解有关命令语法和参数的更多信息,请参阅Atlas CLI文档,了解 atlas federatedAuthentication federationSettings identityProvider list。

要查看特定身份提供程序的详细信息,请执行以下操作:

要使用Atlas CLI描述联合设置中指定的身份提供程序,运行以下命令:

atlas federatedAuthentication federationSettings identityProvider describe <identityProviderId> [options]

要学习;了解有关命令语法和参数的更多信息,请参阅Atlas CLI文档中的 atlas federatedAuthentication federationSettings identityProvider describe。

要查看联合设置:

要使用Atlas CLI返回指定组织的联合设置详细信息,运行以下命令:

atlas federatedAuthentication federationSettings describe [options]

要学习;了解有关命令语法和参数的更多信息,请参阅Atlas CLI文档中的 atlas federatedAuthentication federationSettings describe。

要使用Atlas CLI更新OIDC 身份提供程序,运行以下命令:

atlas federatedAuthentication federationSettings identityProvider update oidc [identityProviderId] [options]

要学习;了解有关命令语法和参数的更多信息,请参阅有关 Atlas federatedAuthentication federationSettings identityProvider 更新 oidc 的Atlas CLI文档。

要列出连接的组织,请执行以下操作:

要使用Atlas CLI列出已连接的组织配置,运行以下命令:

atlas federatedAuthentication federationSettings connectedOrgConfigs list [options]

要学习;了解有关命令语法和参数的更多信息,请参阅Atlas CLI文档,了解 atlas federatedAuthentication federationSettingsconnectedOrgConfigs list。

要查看已连接组织的详细信息:

要使用Atlas CLI描述连接的组织配置,运行以下命令:

atlas federatedAuthentication federationSettings connectedOrgConfigs describe [options]

要学习;了解有关命令语法和参数的更多信息,请参阅Atlas CLI文档中的 atlas federatedAuthentication federationSettingsconnectedOrgConfigs describe。

要更新连接的组织:

要使用Atlas CLI更新连接到一项联合设置的一项组织配置,运行以下命令:

atlas federatedAuthentication federationSettings connectedOrgConfigs update [options]

要学习;了解有关命令语法和参数的更多信息,请参阅Atlas CLI文档中的 atlas federatedAuthentication federationSettingsconnectedOrgConfigs 更新。

要删除连接的组织:

要使用 Atlas CLI 删除已连接的组织配置,运行以下命令:

atlas federatedAuthentication federationSettings connectedOrgConfigs delete [options]

要学习;了解有关命令语法和参数的更多信息,请删除Atlas CLI文档中的 atlas federatedAuthentication federationSettingsconnectedOrgConfigsdelete。

要使用Atlas CLI从联合设置中撤销指定身份提供程序的 JWK 令牌,运行以下命令:

atlas federatedAuthentication federationSettings identityProvider revokeJwk <identityProviderId> [options]

要学习;了解有关命令语法和参数的更多信息,请参阅 Atlas federatedAuthentication federationSettings identityProvider revokeJwk 的Atlas CLI文档。

要断开与组织的连接:

要使用Atlas CLI断开身份提供程序与组织的连接,运行以下命令:

atlas federatedAuthentication federationSettings connectedOrgConfigs disconnect [options]

要学习;了解有关命令语法和参数的更多信息,请参阅Atlas CLI文档中的 atlas federatedAuthentication federationSettingsconnectedOrgConfigsdisconnect。

要删除身份提供程序,请执行以下操作:

要使用Atlas CLI从联合设置中删除指定的身份提供程序,运行以下命令:

atlas federatedAuthentication federationSettings identityProvider delete <identityProviderId> [options]

要学习有关命令语法和参数的更多信息,请参阅Atlas CLI文档中的atlas federatedAuthentication federationSettings identityProvider 删除。