使用 Workload Identity Federation 配置MongoDB
使用 Workload Identity Federation 配置MongoDB ,以对不同平台上的服务进行身份验证。这增强了安全性并简化了服务身份管理。
开始之前
步骤
1
使用 OpenID Connect (OIDC) 配置MongoDB服务器
要配置 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 的身份验证尝试时,服务器都会搜索 _id
与 authNamePrefix/principalName
声明的值匹配的用户文档。
重要
如果此字段设立为false
,则不要包含 authorizationClaim
字段。