Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/
数据库手册
/ / / / /

使用 Workforce Identity Federation 配置MongoDB

使用 Workforce Identity Federation 配置MongoDB ,使用一设立凭证跨不同平台对用户进行身份验证。 这增强了安全性并简化了用户管理。

重要

OpenID Connect (OIDC) 仅在Linux上受支持。

  • 确保您使用的是 MongoDB Enterprise。

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

    mongod --version

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

  • 配置外部身份提供商。有关更多详细信息,请参阅为劳动力身份验证配置外部身份提供程序。

1

注意

为 Workforce Identity Federation 配置MongoDB时,请省略 oidcIdentityProviders 中的 supportsHumanFlows字段。

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

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

setParameter:
authenticationMechanisms: MONGODB-OIDC
oidcIdentityProviders: '[ {
"issuer": "https://okta-test.okta.com",
"audience": "example@kernel.mongodb.com",
"authNamePrefix": "okta-issuer",
"authorizationClaim": "groups",
"clientId": "0zzw3ggfd2ase33",
} ]'

要指定多个身份提供者,请将其他对象添加到 oidcIdentityProviders大量中。当您指定多个身份提供者时,必须为每个提供商指定 matchPattern。示例:

setParameter:
authenticationMechanisms: MONGODB-OIDC
oidcIdentityProviders: '[ {
"issuer": "https://okta-test.okta.com",
"audience": "example@kernel.mongodb.com",
"authNamePrefix": "okta-issuer",
"authorizationClaim": "groups",
"matchPattern": "@okta.com$",
"clientId": "0zzw3ggfd2ase33",
}, {
"issuer": "https://azure-test.azure.com",
"audience": "example2@kernel.mongodb.com",
"authNamePrefix": "azure-issuer",
"authorizationClaim": "groups",
"matchPattern": "@azure.com$",
"clientId": "1zzw3ggfd2ase33",
} ]'

要使用命令行,请指定以下初创企业选项:

mongod --auth --setParameter authenticationMechanisms=MONGODB-OIDC --setParameter \
'oidcIdentityProviders=[ {
"issuer": "https://okta-test.okta.com",
"audience": "example@kernel.mongodb.com",
"authNamePrefix": "okta-issuer",
"authorizationClaim": "groups",
"clientId": "0zzw3ggfd2ase33",
} ]'

要指定多个身份提供者,请将其他对象添加到 oidcIdentityProviders大量中。当您指定多个身份提供者时,必须为每个提供商指定 matchPattern。示例:

mongod --auth --setParameter authenticationMechanisms=MONGODB-OIDC --setParameter \
'oidcIdentityProviders=[ {
"issuer": "https://okta-test.okta.com",
"audience": "example@kernel.mongodb.com",
"authNamePrefix": "okta-issuer",
"authorizationClaim": "groups",
"matchPattern": "@okta.com$",
"clientId": "0zzw3ggfd2ase33",
}, {
"issuer": "https://azure-test.azure.com",
"audience": "example2@kernel.mongodb.com",
"authNamePrefix": "azure-issuer",
"authorizationClaim": "groups",
"matchPattern": "@azure.com$",
"clientId": "1zzw3ggfd2ase33",
} ]'
2

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

重要

如果将 useAuthorizationClaim 设立为 false,则不要包含 authorizationClaim 字段。

setParameter:
authenticationMechanisms: MONGODB-OIDC
oidcIdentityProviders: '[ {
"issuer": "https://okta-test.okta.com",
"audience": "example@kernel.mongodb.com",
"authNamePrefix": "okta-issuer",
"useAuthorizationClaim": false,
"clientId": "0zzw3ggfd2ase33"
} ]'

要指定多个身份提供者,请将其他对象添加到 oidcIdentityProviders大量中。示例:

setParameter:
authenticationMechanisms: MONGODB-OIDC
oidcIdentityProviders: '[ {
"issuer": "https://okta-test.okta.com",
"audience": "example@kernel.mongodb.com",
"authNamePrefix": "okta-issuer",
"useAuthorizationClaim": false,
"clientId": "0zzw3ggfd2ase33"
}, {
"issuer": "https://azure-test.azure.com",
"audience": "example2@kernel.mongodb.com",
"authNamePrefix": "azure-issuer",
"useAuthorizationClaim": false,
"clientId": "1zzw3ggfd2ase33"
} ]'
mongod --auth --setParameter authenticationMechanisms=MONGODB-OIDC --setParameter \
'oidcIdentityProviders=[ {
"issuer": "https://okta-test.okta.com",
"audience": "example@kernel.mongodb.com",
"authNamePrefix": "okta-issuer",
"useAuthorizationClaim": false,
"clientId": "0zzw3ggfd2ase33"
} ]'

要指定多个身份提供者,请将其他对象添加到 oidcIdentityProviders大量中。示例:

mongod --auth --setParameter authenticationMechanisms=MONGODB-OIDC --setParameter \
'oidcIdentityProviders=[ {
"issuer": "https://okta-test.okta.com",
"audience": "example@kernel.mongodb.com",
"authNamePrefix": "okta-issuer",
"useAuthorizationClaim": false,
"clientId": "0zzw3ggfd2ase33"
}, {
"issuer": "https://azure-test.azure.com",
"audience": "example2@kernel.mongodb.com",
"authNamePrefix": "azure-issuer",
"useAuthorizationClaim": false,
"clientId": "1zzw3ggfd2ase33"
} ]'

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

后退

为劳动力身份验证配置外部身份提供程序

在此页面上