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

使用 OAuth 设置 Workload Identity Federation 2.0

借助工作负载身份联合,您的应用程序可以使用 Azure 服务主体、Azure 托管身份和 Google 服务账户等外部程序化身份访问 MongoDB Ops Manager 部署。

工作负载身份联合可以让您的应用程序使用 OAuth 2.0 访问令牌访问 MongoDB 部署。访问令牌可以由任何外部身份提供程序颁发,包括 Azure Entra ID 和 Google Cloud Platform (GCP)。MongoDB Ops Manager 存储用户标识符和权限,但不存储秘密信息。一组有限的 MongoDB 驱动程序 为您的应用程序提供此身份验证机制。

MongoDB驱动程序支持Workload Identity Federation 的两种类型的身份验证流程:内置身份验证和回调身份验证。

如果您将应用部署在兼容的基础设施上,并且具有兼容的主体类型,您可以使用内置身份验证。您的应用可以访问 Ops Manager 部署,无需提供密码,也无需从云提供商的元数据服务手动请求 JWT。相反,您的驱动程序使用现有主体标识符来请求 JSON web token (JWT) 访问令牌。当您的应用连接时,驱动程序会将令牌传递给 MongoDB Ops Manager 部署。

有关更多实现详情,请参阅您的驱动程序的文档。

内置身份验证支持的基础架构和主体类型

云服务提供商
基础架构类型
主体类型

GCP

Compute Engine

GCP 服务帐号

App Engine 标准环境

App Engine 灵活环境

Cloud Functions

Cloud Run

Google Kubernetes Engine

Cloud Build

AZURE

Azure VM

Azure 托管身份(分配的用户和系统)

可以与支持 OAuth 2.0 访问令牌的任何服务使用回调身份验证。工作负载身份联合调用回调方法,您可以在其中从授权服务器或云提供商请求所需的 JWT。然后,当您的应用连接时,您将令牌通过工作负载身份联合传递给 MongoDB Ops Manager。

有关更多实现详情,请查看 驱动程序的文档。

工作负载 Identity Federation 与 Azure 托管 Identities 提供了最安全的方法,对 Azure 上运行的 MongoDB Ops Manager 部署进行身份验证。这种方法具有以下安全优势:

  • 利用托管身份:这允许在Azure服务(例如Azure VM、AKS、 Azure Functions)上运行的应用程序使用分配的Azure托管身份向MongoDB Ops Manager进行身份验证,而无需管理单独的MongoDB凭证。

  • 安全的“无密码”身份验证:您的应用程序从Azure元数据服务器获取短期 OAuth 2.0访问令牌,然后MongoDB Ops Manager会验证该令牌。这样就无需在应用程序代码或配置中存储和托管敏感的数据库用户名和密码。

  • 集中身份管理:您可以在Azure Entra ID框架内管理Azure工作负载的身份,从而为身份管理提供单一事实来源。

  • 增强审核:Azure 提供服务帐户活动的 Atlas 审核日志,从而增强可追溯性和安全监控功能。

要配置 Workload Identity Federation,您必须拥有MongoDB Ops Manager的Project Owner MongoDB Ops Manager访问权限。

您必须满足以下前提条件:

  • MongoDB 7.0 或更高版本。

  • 配置了MongoDBMongoDB Agent 助手的至少一种其他身份验证机制。

    注意

    MongoDB Agent 无法通过 OIDC 连接到您的部署。您必须为 MongoDB Agent 启用另一个身份验证机制。如果 Ops Manager 不托管监控或备份,您必须手动将其配置为使用备用身份验证机制。

要配置工作负载身份联合,请按照以下步骤操作:

身份提供程序

重要:要为项目重置身份验证和 TLS 设置,请先取消管理 Ops Manager 在您的项目中托管的任何 MongoDB 部署。

注意

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

MongoDB不会显式为 OIDC 创建数据库用户。它根据配置将 OIDC 用户映射到MongoDB角色。

完成在配置 OIDC身份验证时选择的授权类型的程序。

如果您选择了 User ID授权类型,请创建一个新用户以向单个用户授权:

1
  1. Organizations从导航栏的 菜单中选择包含您的项目的组织。

  2. 从导航栏的 Projects(项目)菜单中选择项目。

  3. 单击侧边栏中的 Deployment(支持)。

  4. 单击 Security 标签页。

  5. 单击 MongoDB Users 标签页。

2
3

注意

在添加用户之前,请确保已创建要分配给用户的所有角色。

  1. 填写用户帐户字段:

    字段
    说明

    Identifier

    • 在第一个字段,输入 $external数据库。

    • 在第二个字段中,使用 OIDC 身份提供程序 配置名和配置中的用户主体索赔,以斜杠 (/) 分隔的形式输入用户名:{configuration_name}/{user_principal_claim}

    Roles

    在此框中输入任何可用的用户定义角色和内置角色。 单击该组合框会提供现有角色的列表。

    Authentication Restrictions

    1. 单击 Add Entry(连接)。

    2. 在 Client Source 或 Server Address 框中,添加一个或多个 IP 地址和/或 CIDR 块。使用逗号分隔多个地址或区块。

      • Client Source 限制此用户可以进行身份验证并使用给定角色的地址。

      • Server Address 限制该用户可以进行身份验证的地址并具有给定的角色。

    3. 单击 Save(连接)。

    4. 要添加其他条目,请单击Add Entry 。

  2. 单击 Add User(连接)。

4
5

否则,请单击 Cancel,您可以进行其他更改。

如果您选择了Group Membership 授权类型,请完成以下步骤以创建自定义角色,该角色根据 IdP 用户群组成员身份授予授权:

1
  1. Organizations从导航栏的 菜单中选择包含您的项目的组织。

  2. 从导航栏的 Projects(项目)菜单中选择项目。

  3. 单击侧边栏中的 Deployment(支持)。

  4. 单击 Security 标签页。

  5. 单击 MongoDB Roles 标签页。

2
3
  1. 输入以下字段:

    字段
    必要性
    说明

    Identifier

    必需

    在Database框中,输入admin 。

    在 Name 框中,输入您的 OIDC 身份提供程序 配置名和来自您的外部身份提供程序的组名,以斜杠 (/) 分隔:{configuration_name}/{group_name}

    Inherits From

    Optional

    角色名称和数据库对的列表。 这些对的格式为roleName@dbName 。

    Authentication Restrictions

    Optional

    您想要限制来自IdP的 IP 地址或 CIDR 符号列表。

    Privilege Actions by Resource

    Optional

    允许对资源执行的操作。

    要学习;了解更多信息,请参阅特权操作。

  2. 单击 Add Role(连接)。

使用这些 MongoDB 驱动程序,将应用连接到 MongoDB 进行工作负载身份联合身份验证:

要管理您的工作负载身份联合配置,您可以执行这些操作。

注意

请勿使用此功能轮换您的签名密钥。轮换 OIDC IdP 签名密钥时,MongoDB 会在现有访问令牌到期后自动获取 JWKS。

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

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

  2. 如果尚未显示该页,请从导航栏的 Projects(项目)菜单中选择所需的项目。

  3. 如果尚未出现,请单击侧边栏中的 Deployment(部署)。

  4. 单击 Security 标签页。

  5. 单击 Settings 标签页。

2
  1. 滚动到OIDC Connection and Authorization (Required for OIDC)部分。

  2. 单击 REVOKE JWKS 按钮。

  3. 在Revoke JWKS tokens?对话框中,单击Revoke 。

要编辑 Workload Identity Federation 配置,请执行以下操作:

1
  1. Organizations从导航栏的 菜单中选择包含您的项目的组织。

  2. 从导航栏的 Projects(项目)菜单中选择项目。

  3. 单击侧边栏中的 Deployment。

  4. 单击 Security 标签页。

  5. 单击 Settings 标签页。

2
  1. 滚动到OIDC Connection and Authorization (Required for OIDC)部分。

  2. 对于要编辑的配置,请单击 EDIT 按钮。

  3. 更改配置。

3
4
5
6

否则,请单击 Cancel,您可以进行其他更改。

要删除 Workload Identity Federation 配置,请执行以下操作:

1
  1. Organizations从导航栏的 菜单中选择包含您的项目的组织。

  2. 从导航栏的 Projects(项目)菜单中选择项目。

  3. 单击侧边栏中的 Deployment(支持)。

  4. 单击 Security 标签页。

  5. 单击 Settings 标签页。

2
  1. 滚动到OIDC Connection and Authorization (Required for OIDC)部分。

  2. 对于要删除的配置,请单击 REMOVE 按钮。

  3. 在Removing OIDC IdP configuration?对话框中,单击Remove 。