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

使用 Workload Identity Federation 配置MongoDB

使用 Workload Identity Federation 配置MongoDB ,以对不同平台上的服务进行身份验证。 这增强了安全性并简化了服务身份管理。

重要

OpenID Connect (OIDC) 仅在Linux上受支持。

  • 确保您使用的是 MongoDB Enterprise。

    要验证您是否使用 MongoDB Enterprise,请将 --version 命令行选项传递给 mongod 或 mongos:

    mongod --version

    在该命令的输出中,请查找字符串 modules: subscription 或 modules: enterprise,以确认您使用的是 MongoDB Enterprise 二进制文件。

  • 配置您的外部 身份提供程序。有关详细信息,请参阅 配置工作负载身份联合。

1

要配置MongoDB服务器,启用MONGODB-OIDC身份验证机制并使用oidcIdentityProviders指定身份提供程序配置。

注意

为 Workload Identity Federation 配置MongoDB时,请将 中的supportsHumanFlows oidcIdentityProviders字段设立为false 。

您可以使用配置文件或命令行来配置MongoDB服务器。

要使用配置文件,请在文件中指定以下参数:

setParameter: authenticationMechanisms: "MONGODB-OIDC,SCRAM-SHA-256" oidcIdentityProviders: | [ { "issuer": "https://okta-test.okta.com", "audience": "example@kernel.mongodb.com", "authNamePrefix": "okta-issuer", "authorizationClaim": "groups", "supportsHumanFlows": false } ]

要指定多个 IdP,请将其他对象添加到 oidcIdentityProviders数组中。示例:

setParameter: authenticationMechanisms: "MONGODB-OIDC,SCRAM-SHA-256" oidcIdentityProviders: | [ { "issuer": "https://okta-test.okta.com", "audience": "example@kernel.mongodb.com", "authNamePrefix": "okta-issuer", "authorizationClaim": "groups", "supportsHumanFlows": false }, { "issuer": "https://azure-test.azure.com", "audience": "example2@kernel.mongodb.com", "authNamePrefix": "azure-issuer", "authorizationClaim": "groups", "supportsHumanFlows": false } ]
2

要启用内部授权,请将 oidcIdentityProviders 参数的 useAuthorizationClaim字段设立为 false。此设置依靠用户 document 而不是来自身份提供程序 的授权声明,从而实现更灵活的用户管理。

重要

如果将 useAuthorizationClaim 设立为 false,则不要包含 authorizationClaim 字段。

setParameter: authenticationMechanisms: "MONGODB-OIDC,SCRAM-SHA-256" oidcIdentityProviders: | [ { "issuer": "https://okta-test.okta.com", "audience": "example@kernel.mongodb.com", "authNamePrefix": "okta-issuer", "useAuthorizationClaim": false, "supportsHumanFlows": false } ]

要指定多个 IdP,请将其他对象添加到 oidcIdentityProviders数组中。示例:

setParameter: authenticationMechanisms: "MONGODB-OIDC,SCRAM-SHA-256" oidcIdentityProviders: | [ { "issuer": "https://okta-test.okta.com", "audience": "example@kernel.mongodb.com", "authNamePrefix": "okta-issuer", "useAuthorizationClaim": false, "supportsHumanFlows": false }, { "issuer": "https://azure-test.azure.com", "audience": "example2@kernel.mongodb.com", "authNamePrefix": "azure-issuer", "useAuthorizationClaim": false, "supportsHumanFlows": false } ]

当您将useAuthorizationClaim设立为false时,使用MONGODB-OIDC机制进行身份验证的用户将从$external中的用户 document 获取授权权限。对于 IdP 用户每次基于 OIDC 的身份验证尝试,服务器都会搜索 _id 与 authNamePrefix/principalName 声明的值匹配的用户 document。

3

对于使用由内部证书颁发机构 (CA) 签名的 X509 TLS 证书的环境,您必须将该 CA 证书添加到系统 CA 证书捆绑包中,以便 mongod 可以与身份提供程序通信。这应用于用户身份验证,也应用于使用回调方法时的工作负载身份验证。省略此步骤可能会导致 OIDC SSL 证书或 JWT 密钥验证错误。