ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Docs 菜单

使用 Workload Identity Federation 配置MongoDB

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

重要

OpenID Connect (OIDC) is only supported on Linux.

  • 确保您使用的是 MongoDB Enterprise。

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

    mongod --version

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

  • 配置外部身份提供商。 有关详细信息,请参阅配置外部身份提供程序。

1

要配置 MongoDB Server,请启用 MONGODB-OIDC 身份验证机制,并使用 oidcIdentityProviders 指定身份提供商 (IDP) 配置。

注意

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

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

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

setParameter:
authenticationMechanisms: MONGODB-OIDC
oidcIdentityProviders: [ {
"issuer": "https://okta-test.okta.com",
"audience": "example@kernel.mongodb.com",
"authNamePrefix": "okta-issuer",
"matchPattern": "@mongodb.com$",
"JWKSPollSecs": 86400
} ]

要使用命令行,请指定以下内容:

mongod --auth --setParameter authenticationMechanisms=MONGODB-OIDC --setParameter \
'oidcIdentityProviders=[ {
"issuer": "https://okta-test.okta.com",
"audience": "example@kernel.mongodb.com",
"authNamePrefix": "okta-issuer",
"matchPattern": "@mongodb.com$",
"JWKSPollSecs": 86400
} ]'
2

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

setParameter:
authenticationMechanisms: MONGODB-OIDC
oidcIdentityProviders: [ {
"issuer": "https://okta-test.okta.com",
"audience": "example@kernel.mongodb.com",
"authNamePrefix": "okta-issuer",
"matchPattern": "@mongodb.com$",
"useAuthorizationClaim": "false",
"JWKSPollSecs": 86400
} ]
mongod --auth --setParameter authenticationMechanisms=MONGODB-OIDC --setParameter \
'oidcIdentityProviders=[ {
"issuer": "https://okta-test.okta.com",
"audience": "example@kernel.mongodb.com",
"authNamePrefix": "okta-issuer",
"matchPattern": "@mongodb.com$",
"useAuthorizationClaim": "false",
"JWKSPollSecs": 86400
} ]'

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

重要

如果此字段设立为false ,则不包含 authorizationClaim字段。