Docs 菜单
Docs 主页
/
MongoDB Atlas
/ / /

通过 OIDC 设置 Workforce Identity Federation

在此页面上

  • 必需的访问权限
  • 步骤
  • 配置外部身份提供商应用程序
  • 配置 Workforce Identity Federation 身份验证
  • 使用劳动力身份验证添加数据库用户
  • 使用 Workforce Identity Federation 将应用程序连接到 MongoDB
  • 管理现有员工 Identity Federation 配置
  • Revoke JWKS
  • 删除劳动力身份提供商配置

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

通过 Workforce Identity Federation,您可以:

  • 通过现有的 IdP 管理员工对 MongoDB 部署的访问。

  • 通过 IdP 执行密码复杂性、凭证轮换和 MFA 等安全策略。

  • 个用户群组或单个用户授予访问权限。

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

运行 MongoDB 7版本的 Atlas 专用集群(M 10及以上)支持 Workforce Identity Federation。 0 。 11及更高版本。您需要使用 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. 配置劳动力身份提供程序(一次性设置)。

    1. 配置外部身份提供程序。

    2. 在 Atlas 中配置 Workforce Identity Provider 并为您的服务启用它组织。

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

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

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

注意

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

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

  • 使用PKCE的授权代码流

  • 设备授权流程

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

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

1

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

2
3

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

4

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

5

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

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

要使用 Microsoft Entra ID 注册您的OIDC应用程序,请执行以下操作:

1
  1. 导航至 App registrations

    1. Azure 门户 中 帐户,搜索并单击Microsoft Entra ID

    2. 在左侧导航栏的 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

    所选择的群组取决于您在 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. accessTokenAcceptedVersionnull 更新为 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 URLissuer的值来获取此值。

下表显示这些 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 ,请参阅配置外部身份提供商应用程序。

您可以使用 OIDC 配置 Workforce Identity Federation,以便从 Federation Management Console(联合管理控制台)访问 Atlas 中的数据库。

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

1
  1. 导航至“组织设置”。

  2. 单击Open Federation Management App

2

您必须验证向IdP注册的域的所有权。如果您已经为 Atlas 注册域以支持 SAML SSO,则可以跳过此步骤。

  1. 在左侧边栏中选择“域”。

  2. 单击 Add Domain 按钮。

  3. Display Name框中输入显示名称。

  4. Domain Name框中输入域名。

  5. 单击HTML File UploadDNS Record按钮,选择验证您是否为域所有者的方法。

  6. 如果您选择了HTML File Upload ,请下载提供的 HTML 文件并将其上传到您的域,以便可以通过https://<your-domain/mongodb-site-verification.html>访问该文件。

  7. 如果您选择了DNS Record ,请复制提供的TXT Record ,并将其上传到您的域提供商。

  8. 单击 Continue(连接)。

  9. 最后,在Domains页面中,单击新添加的域的Verify按钮。

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

  2. 执行以下步骤之一:

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

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

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

  4. 选择 OIDC for Data Access

4
设置
必要性
Configuration Name
必需
标识此配置的人类可读标签。此标签对 Atlas 用户可见。
Configuration Description
Optional
描述此配置的人类可读标签。
Issuer URI
必需
所注册的 IdP 应用程序提供的发行者值。使用此 URI,MongoDB 会找到 OpenID 提供商配置文档,该文档应在 /.wellknown/open-id-configuration 端点中可用。
Client ID
必需
已注册应用程序的唯一标识符。输入您在外部身份提供程序中注册的应用程序的clientId值。
互动讨论
必需
外部身份提供程序打算为其提供令牌的实体。输入您在外部身份提供程序中注册的应用程序的audience值。通常,此值与Client ID相同。
授权类型
必需
选择Group Membership以根据IdP用户群组成员身份授予授权,或选择User ID以向单个用户授予授权。
Requested Scopes
Optional

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

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

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

User Claim
必需

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

默认值sub

Groups Claim
必需

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

默认值groups

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

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

  3. 单击 Submit(连接)。

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

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

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

    注意

    如果您配置了其他 IdP,则此按钮会显示 Connect Identity Provider(s)(连接身份提供程序)。

8

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

9

当您将劳动力身份提供者连接到组织时,Atlas 会为该组织内的所有项目启用劳动力身份提供者。

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

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

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

    显示数据库访问页面。

2

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

注意

在您将 Workforce IdP 应用于 Atlas之前,此按钮会显示Add New Database User

3

Authentication Method 部分,选择 Federated Auth

注意

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

4

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

  1. 指定与已配置的劳动力身份提供程序关联的用户标识符或群组标识符。

注意

对于 Azure Entra ID 用户,此值映射到 Azure 用户组的对象 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 UserTemporary Group切换为On ,然后选择一个时间,在此时间之后 Atlas 可以从Temporary User DurationTemporary Group Duration下拉列表中删除用户或群组。 您可以选择以下时间段之一作为群组的存在时间:

  • 6 小时

  • 1 天

  • 1 周

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

8

执行以下步骤之一:

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

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

下面列出了使用 Workforce Identity Federation 身份验证将应用程序连接到 MongoDB 的方法:

注意

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

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

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

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

  2. 单击 Organizations 菜单旁边的 Organization Settings 图标。

    显示“组织设置”页面。

3

Setup Federated LoginManage Federation Settings 部分,单击 Visit Federation Management App

4
5
6

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

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

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

  2. 单击 Organizations 菜单旁边的 Organization Settings 图标。

    显示“组织设置”页面。

2

Setup Federated LoginManage Federation Settings 部分,单击 Visit Federation Management App

3
  1. 单击左侧边栏中的Organizations

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

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

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

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

4
5
6

Delete Identity Provider? 模式中,单击 Delete

后退

OIDC/OAuth2.0