Docs 菜单
Docs 主页
/
MongoDB Manual
/ / / / /

使用 Workload Identity Federation 配置MongoDB

在此页面上

  • 开始之前
  • 步骤
  • 后续步骤
  • 了解详情

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

  • 确保您使用的是 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字段。

后退

配置外部身份提供者