Docs 菜单
Docs 主页
/
MongoDB Ops Manager
/ / /

使用 OAuth 设置 Workload Identity Federation 2.0

在此页面上

  • 如何操作
  • 内置身份验证
  • 回调身份验证
  • 必需的访问权限
  • 先决条件
  • 步骤
  • 配置外部身份提供商应用程序
  • 配置工作负载 Identity Federation 身份验证
  • 配置 OIDC 授权
  • 使用 Workload Identity Federation 将应用程序连接到 MongoDB
  • 管理现有工作负载 Identity Federation 配置
  • Revoke JWKS
  • 编辑配置
  • 删除配置

Workload Identity Federation 允许应用程序使用外部编程身份(例如Azure服务主体、 Azure托管身份和 Google 服务帐户)访问权限MongoDB Ops Manager部署。

Workload Identity Federation 允许您的应用程序使用 OAuth 2.0访问权限令牌访问权限MongoDB部署。访问权限令牌可由任何外部身份提供者颁发,包括Azure Entra ID和Google Cloud Platform。 MongoDB Ops ManagerMongoDB Ops Manager存储用户标识符和权限,但不存储密钥。仅 某些MongoDB驱动程序支持应用程序的这种身份验证机制。

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

如果将应用程序部署在具有受支持主体类型的受支持基础架构上,则可以使用内置身份验证。 您的应用程序可以访问权限MongoDBMongoDB Ops Manager JSON web tokenOps Manager部署,而无需提供密码或手动向云提供商的元数据服务请求 JSON web token。相反,您选择的MongoDB驾驶员会使用现有的主体标识符在后台请求JSONMongoDB JSON web tokenweb token访问权限令牌,然后在应用程序连接时,该令牌会自动传递到MongoDBMongoDB Ops Manager 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访问权限令牌的服务中使用回调身份验证。Workload Identity FederationJSON web token 会调用回调方法,在该方法中,您可以从授权服务器或云提供商请求所需的JSON web token ,当您的应用程序通过MongoDB Ops Manager Workload Identity Federation 连接到MongoDB Ops Manager时,您必须传递该令牌。

请查看所选驱动程序的文档以了解其他实施详情。

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

您必须具备以下条件:

  • MongoDB 7.0 或更高版本。

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

    注意

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

要配置 Workload Identity Federation,请完成以下步骤:

  1. 配置工作负载身份提供程序(一次性设置)。

    1. 配置外部身份提供商。

    2. 在MongoDB Ops Manager中配置工作负载身份提供者。MongoDB Ops Manager

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

  3. 对MongoDB OpsMongoDB Ops Manager Manager部署进行身份验证。

注意

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

MongoDB Ops ManagerAzure为了使用Azure托管身份或Azure服务主体访问权限MongoDBAzure Ops Manager部署,您需要注册AzureAzure EntraID ID应用程序。如果您现有一个用于工作负载(人类用户)访问权限的应用程序注册,我们建议您为工作负载访问权限注册一个单独的应用程序。

1
  1. 导航至 App registrations

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

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

  2. 单击 New registration(连接)。

  3. 应用以下值。

    字段

    Name

    Ops Manager Database - Workload

    Supported Account Types

    Accounts in this organizational directory only (single tenant)

    Redirect URI

    Web

2

在MongoDB Ops Manager中定义访问权限权限时,最佳实践是使用服务主体标识符作为MongoDB用户标识符。MongoDBMongoDB Ops Manager如果您计划使用这种常用方法,请跳过此步骤。 但是,如果您更愿意使用群组标识符(例如Microsoft Entra ID安全群组标识符),则可以通过以下步骤在应用程序注册中设立群组声明。

  1. 导航至 Token Configuration

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

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

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

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

  4. Customize token properties by type(按类型自定义令牌属性)部分,确保仅选择Group ID(群组 ID)。

    当您选择 Group Id 时,Azure 将发送安全组的对象 ID。

  5. 单击 Add(连接)。

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

3
  1. 导航到左侧边栏中的Expose an API ,然后启用应用程序ID URI。

  2. 启用应用程序ID URI。

    1. 保留Azure分配的默认应用程序ID URI,即 <application_client_id>。复制并存储此值,因为MongoDBMongoDB Ops Manager MongoDBOps Manager和所有MongoDB驱动程序都需要此值来进行 Workload Identity Federation 配置。

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

  2. accessTokenAcceptedVersionnull 更新为 2

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

  3. 单击 Save(连接)。

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

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

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

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

    您也可以通过访问 OpenID Connect metadata document(OpenID Connect 元数据文档)URL 并复制 issuer 的值来检索该值。

下表显示了这些MicrosoftMongoDB Ops Manager MicrosoftEntraID ID用户界面值映射到的MongoDB Ops Manager配置属性。

Microsoft Entra ID UI
Ops Manager 配置属性

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

Issuer URI.

Application ID URI (<Application ID>)

Audience

您无需在GCP帐户中进行任何配置更改。

注意

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

要在MongoDBAzure Ops Manager中使用Azure EntraID MongoDB Ops ManagerID配置工作负载身份联合身份提供程序,请执行以下操作:

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

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

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

  4. 单击 Security 标签页。

  5. 单击 Settings 标签页。

  6. 执行以下操作之一:

    • 如果这是您第一次为此项目配置 TLS、身份验证或授权设置,请单击 Get Started(开始使用)。

    • 如果已经为此项目配置 TLS 身份验证或授权设置,请单击 Edit(编辑)。

2
字段
操作

MongoDB 部署传输层安全 (TLS)

将此滑块切换至 ON(开启)。

TLS CA 文件路径

TLS 证书颁发机构文件是 .pem 格式的证书文件,其中包含来自证书颁发机构的根证书链。MongoDB 助手使用相同的证书颁发机构文件连接到部署中的每个项目。

.pem证书文件的加密私钥必须采用 PKCS #1 格式。MongoDB Agent不支持 PKCS #8 格式。

在运行 MongoDB 进程的每个主机上键入 TLS 证书颁发机构文件的文件路径:

  • 在第一个框中键入所有 Linux 主机上的文件路径。

  • 在第二个框中键入所有 Windows 主机上的文件路径。

这将为项目中的 MongoDB 进程启用net.tls.CAFile设置。

单击 Validate(验证)测试部署中每个主机在您指定的路径上是否都有 TLS 证书颁发机构。

集群 TLS CA 文件路径

包含来自证书授权机构的根证书链的 .pem 文件,用于验证建立连接的客户端提供的证书。使用相对或绝对路径指定 .pem 文件的文件名。net.tls.clusterCAFile 要求设置 net.tls.CAFile

如果不指定net.tls.clusterCAFile ,集群将使用net.tls.CAFile选项中指定的.pem文件。

net.tls.clusterCAFile 允许您使用单独的证书颁发机构来验证 TLS 握手的客户端到服务器和服务器到客户端部分。

客户端证书模式

选择在连接到启用 TLS 的MongoDB部署时客户端应用程序或MongoDB助手是否必须提供 TLS 证书。每个MongoDB 部署都会在这些客户端主机尝试连接时检查来自这些客户端主机的证书。 如果您选择要求客户端提供 TLS 证书,请确保它们有效。

接受的值为:

Optional

连接到 MongoDB 部署时,每个客户端都可以提供有效的TLS证书。 如果您mongodtlsMode 设置为 ,MongoDB 助手可能会使用 TLSNone 证书。

必需

此项目中的每个 MongoDB 部署都从 TLS 加密的网络连接开始。所有助手都必须使用 TLS 连接到任何 MongoDB 部署。

3

MongoDB Deployment Authentication Mechanism 部分,选择 Federated Auth (OIDC)

4
  1. OIDC Connection and Authorization (Required for OIDC) 部分中,单击 + OIDC IdP Configuration

  2. OIDC Protocol Settings 对话框中,选择 Workload Identity Federation

5
设置
必要性

Configuration Name

必需

标识此配置的唯一标签。此标签对Ops Manager用户可见,并在创建用户和角色进行授权时使用。区分大小写,且只能包含以下字符:

  • 字母数字字符(az09 的组合)

  • 连字符 (-)

  • 下划线 (_)

保存配置后,您将无法编辑配置名称。

Issuer URI

必需

所注册的 IdP 应用程序提供的发行者值。使用此 URI,MongoDB 会找到 OpenID 提供商配置文档,该文档应在 /.wellknown/open-id-configuration 端点中可用。

Audience

必需

外部身份提供商打算为其提供令牌的实体。 输入您在外部身份提供程序中注册的应用的 audience 值。

授权类型

必需

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

更常见的是使用 User ID 进行应用程序访问权限。

Customize User Claim

必需

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

默认值sub

Customize Group Claim

必需

如果选择 Group Membership 作为授权类型,则为必填项。包含主体的 IdP 用户群组成员信息的声明的标识符。接受默认值,除非 IdP 使用不同的声明,或者您需要自定义声明。

默认值groups

6

MongoDBMongoDB Ops Manager Ops Manager会保存配置并将其列在 部分中。OIDC Connection and Authorization (Required for OIDC)

7
8
9

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

要在MongoDB OpsGCP MongoDB Ops ManagerManager中使用GCP配置工作负载身份联合身份提供程序,请执行以下操作:

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

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

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

  4. 单击 Security 标签页。

  5. 单击 Settings 标签页。

  6. 执行以下操作之一:

    • 如果这是您第一次为此项目配置 TLS、身份验证或授权设置,请单击 Get Started(开始使用)。

    • 如果已经为此项目配置 TLS 身份验证或授权设置,请单击 Edit(编辑)。

2
字段
操作

MongoDB 部署传输层安全 (TLS)

将此滑块切换至 ON(开启)。

TLS CA 文件路径

TLS 证书颁发机构文件是 .pem 格式的证书文件,其中包含来自证书颁发机构的根证书链。MongoDB 助手使用相同的证书颁发机构文件连接到部署中的每个项目。

.pem证书文件的加密私钥必须采用 PKCS #1 格式。MongoDB Agent不支持 PKCS #8 格式。

在运行 MongoDB 进程的每个主机上键入 TLS 证书颁发机构文件的文件路径:

  • 在第一个框中键入所有 Linux 主机上的文件路径。

  • 在第二个框中键入所有 Windows 主机上的文件路径。

这将为项目中的 MongoDB 进程启用net.tls.CAFile设置。

单击 Validate(验证)测试部署中每个主机在您指定的路径上是否都有 TLS 证书颁发机构。

集群 TLS CA 文件路径

包含来自证书授权机构的根证书链的 .pem 文件,用于验证建立连接的客户端提供的证书。使用相对或绝对路径指定 .pem 文件的文件名。net.tls.clusterCAFile 要求设置 net.tls.CAFile

如果不指定net.tls.clusterCAFile ,集群将使用net.tls.CAFile选项中指定的.pem文件。

net.tls.clusterCAFile 允许您使用单独的证书颁发机构来验证 TLS 握手的客户端到服务器和服务器到客户端部分。

客户端证书模式

选择在连接到启用 TLS 的MongoDB部署时客户端应用程序或MongoDB助手是否必须提供 TLS 证书。每个MongoDB 部署都会在这些客户端主机尝试连接时检查来自这些客户端主机的证书。 如果您选择要求客户端提供 TLS 证书,请确保它们有效。

接受的值为:

Optional

连接到 MongoDB 部署时,每个客户端都可以提供有效的TLS证书。 如果您mongodtlsMode 设置为 ,MongoDB 助手可能会使用 TLSNone 证书。

必需

此项目中的每个 MongoDB 部署都从 TLS 加密的网络连接开始。所有助手都必须使用 TLS 连接到任何 MongoDB 部署。

3

MongoDB Deployment Authentication Mechanism 部分,选择 Federated Auth (OIDC)

4
  1. OIDC Connection and Authorization (Required for OIDC) 部分中,单击 + OIDC IdP Configuration

  2. OIDC Protocol Settings 对话框中,选择 Workload Identity Federation

5
设置
必要性

Configuration Name

必需

标识此配置的唯一标签。此标签对Ops Manager用户可见,并在创建用户和角色进行授权时使用。区分大小写,且只能包含以下字符:

  • 字母数字字符(az09 的组合)

  • 连字符 (-)

  • 下划线 (_)

保存配置后,您将无法编辑配置名称。

Issuer URI

必需

输入 URI https://accounts.google.com

Audience

必需

指定任何自定义值。 调用MongoDB驱动程序时会使用 Audience。

授权类型

必需

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

更常见的是使用 User ID 进行应用程序访问权限。

Customize User Claim

必需

请勿修改默认值sub

默认值sub

6

MongoDBMongoDB Ops Manager Ops Manager会保存配置并将其列在 部分中。OIDC Connection and Authorization (Required for OIDC)

7
8
9

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

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

根据您在配置 OIDC身份验证时选择的授权类型,选择一个标签页。

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

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

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

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

  4. 单击 Security 标签页。

  5. 单击 MongoDB Users 标签页。

2
3

注意

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

  1. 填写用户帐户字段:

    字段
    说明

    Identifier

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

    • 在第二个字段,输入使用用户名 IdP 配置名称的用户名和配置中的用户主体声明,用斜杠/ 分隔:

      {configuration_name}/{user_principal_claim}

    Roles

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

    Authentication Restrictions

    1. 单击 Add Entry(连接)。

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

      • 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 IdP 配置名称和来自外部身份提供商的群组名称,并用斜杠分隔/

    {configuration_name}/{group_name}

    Inherits From

    Optional

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

    Authentication Restrictions

    Optional

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

    Privilege Actions by Resource

    Optional

    允许对资源执行的操作。

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

  2. 单击 Add Role(连接)。

使用以下MongoDB驱动程序通过 Workload Identity Federation身份验证将应用程序程序连接到MongoDB :

要管理Workload Identity Federation 配置,您可以执行以下操作。

注意

请勿使用此功能轮换您的签名密钥。轮换 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

后退

劳动力(人员)