使用 OpenID Connect 配置自管理 MongoDB
MongoDB Enterprise 支持 OpenID Connect 身份验证。您可以使用 OpenID Connect 配置 MongoDB 数据库和第三方身份提供商之间的单点登录。
开始之前
通过所选提供商设置 OpenID Connect 客户端配置文件: Microsoft Azure AD 或 Okta 。
使用
mongosh
进行连接时,如果使用oidcRedirectUri
选项,则 URI 必须与身份提供者的配置相匹配。确保您使用的是 MongoDB Enterprise。
要验证您是否正在使用MongoDB Enterprise,请将
--version
命令行选项传递给mongod
或mongos
:mongod --version 在该命令的输出中,请查找字符串
modules: subscription
或modules: enterprise
,以确认您使用的是 MongoDB Enterprise 二进制文件。
步骤
1
配置 MongoDB 服务器
要配置 MongoDB Server,请启用 MONGODB-OIDC 身份验证机制,并使用 oidcIdentityProviders
指定身份提供商 (IDP) 配置。
您可以使用配置文件或命令行来配置 MongoDB 服务器。
要使用配置文件进行配置,请在文件中指定两个参数:
setParameter: authenticationMechanisms: MONGODB-OIDC oidcIdentityProviders: [ {"issuer": "https://...", ...} ]
要使用命令行进行配置,请指定以下内容:
mongod --auth --setParameter authenticationMechanisms=MONGODB-OIDC --setParameter \ 'oidcIdentityProviders=[ {"issuer": "https://...", ...} ]'
2
创建 MongoDB 角色
在 admin
数据库中,使用 db.createRole()
方法创建将身份提供商群组角色映射到 MongoDB 角色的角色。
使用以下格式创建角色:
<authNamePrefix>/<authorizationClaim>
oidcIdentityProviders
参数提供 authNamePrefix
字段和 authorizationClaim
字段。例如:
db.createRole( { role: "okta/Everyone", privileges: [ ], roles: [ "readWriteAnyDatabase" ] } )