使用员工身份联合配置 MongoDB
通过使用单一凭据集跨不同平台验证用户,使用工作力量身份联合配置 MongoDB 以增强安全性并简化用户管理。
在开始之前
请确保您正在使用MongoDB Enterprise。
要验证您正在使用MongoDB Enterprise,请将
--version命令行选项传递给mongod或mongos:mongod --version 在命令输出的字符串中查找
modules: subscription或modules: enterprise以确认您正在使用MongoDB Enterprise二进制文件。配置您的外部身份提供者。有关更多详细信息,请参阅配置外部身份提供者。
步骤
使用OpenID Connect (OIDC)配置MongoDB服务器
要配置MongoDB服务器,请启用MONGODB-OIDC 认证机制,并使用oidcIdentityProviders 指定身份提供者(IDP)配置。
注意
当配置MongoDB用于Workforce身份联合,将 supportsHumanFlows 字段在 oidcIdentityProviders 中设置为 true。
您可以使用配置文件或命令行配置 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 } ]'
(可选) 启用内部授权
要启用内部授权,将 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 的身份验证尝试,服务器都会搜索具有与 authNamePrefix/principalName 声明值匹配的 _id 的用户文档。
重要
如果将此字段设置为 false,请勿 包含 authorizationClaim 字段。