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

通过 OIDC 设置 Workforce Identity Federation 身份验证

在 MongoDB 7.0 及更高版本中,您可以使用 Workforce Identity Federation 与外部身份提供程序 (身份提供程序) 结合使用,例如您的企业 身份提供程序。员工身份联合对您的员工(包括员工、合作伙伴和承包商)进行身份验证和授权。

通过 Workforce Identity Federation,您可以:

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

  • 在 IdP 中实施密码复杂性、档案轮换和多因素身份验证等安全策略。

每个项目只能创建一个 Workforce Identity Federation,但可以随时编辑或重新创建配置。

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

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

  • mongosh 1.9.1 或更高版本。

  • MongoDB 7.0 或更高版本。

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

    注意

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

要使用 Workforce Identity Federation 访问 Cloud Manager 部署,请按照以下步骤操作:

  1. 配置劳动力身份提供程序(一次性设置)。

要使用 OIDC 配置 Workforce Identity Federation,请向支持 OIDC 标准的 身份提供程序 注册您的 OIDC 应用。示例包括 Microsoft Entra ID、Okta 和 Ping Identity。

您可以为这些授权类型配置您的 OIDC 应用:

  • 使用PKCE的授权代码流

  • 设备授权流程

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

OIDC 应用注册步骤可能因 身份提供程序 而异。在应用注册过程中,设置以下项目:

您的 OIDC 应用的一般注册步骤如下所示:

1

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

2
3

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

4

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

5

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

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

要使用OIDC 配置 Workforce Identity Federation,请完成此过程。

注意

Workforce Identity Federation 仅支持 JSON web token (JWT) 身份验证。它不支持不透明访问令牌。

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 Agent 使用相同的证书颁发机构文件连接到部署中的每个项目。

.pem 证书文件的加密私钥必须采用 PKCS #1 格式。MongoDB 助手不支持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 证书,请确保它们有效。

接受的值为:

  • 可选: 连接到 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 对话框中,选择 Workforce Identity Federation。

5
设置
必要性
值

Configuration Name

必需

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

  • 字母数字字符(a 至 z 和 0 至 9 的组合)

  • 连字符 (-)

  • 下划线 (_)

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

Issuer URI

必需

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

Client ID

必需

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

Audience

必需

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

Requested Scopes

Optional

赋予用户从授权端点请求数据权限的令牌。

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

授权类型

必需

选择 Group Membership 以根据 身份提供程序 用户组成员身份授予授权,或选择 User ID 以授予单个用户授权。

Customize User Claim

必需

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

默认值:sub

Customize Group Claim

必需

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

默认值:groups

6

Cloud Manager会保存配置并在 OIDC Connection and Authorization (Required for OIDC) 部分中列出。

7
8
9

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

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

按照您在配置 OIDC 身份验证时:选择的授权类型执行步骤。

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

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(连接)。

如果您选择了 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,您可以进行其他更改。

使用 mongosh 或 Compass 将应用与 MongoDB 连接,并使用 Workforce Identity Federation 身份验证。

为了管理您的 Workforce Identity Federation 配置,您可以执行这些操作。

注意

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

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

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

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

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

显示“安全”页面。

2

单击 Settings 标签页。

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

  2. 单击 REVOKE JWKS 按钮。

    注意

    如果未配置IdP ,则此按钮处于空闲状态。

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

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

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

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

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

显示“安全”页面。

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

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

  3. 更改配置。

3
4
5
6

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

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

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

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

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

显示“安全”页面。

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

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

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