Workload Identity Federation でMongoDB を構成し、さまざまなプラットフォームでサービスを認証します。 これにより、セキュリティが向上し、サービス ID 管理が簡素化されます。
重要
OpenID Connect(OIDC)はLinuxでのみサポートされています。
始める前に
MongoDB Enterprise を使用していることを確認します。
MongoDB Enterprise を使用していることを確認するには、
--versionコマンドラインオプションをmongodまたはmongosに渡します。mongod --version このコマンドの出力で string
modules: subscriptionまたはmodules: enterpriseを探し、MongoDB Enterprise バイナリを使用していることを確認します。外部IdPを構成します。詳細については、ワークロード認証のための外部 IdP の構成 を参照してください。
手順
OpenID Connect(OIDC)でMongoDBサーバーを構成する
MongoDB サーバーを構成するには、 MONGODB-OIDC認証メカニズムを有効にし、 oidcIdentityProvidersを使用して ID プロバイダー(IDP)構成を指定します。
注意
Workload Identity Federation 用のMongoDBsupportsHumanFlows oidcIdentityProvidersfalseを構成するときは、 の フィールドを に設定します。
MongoDBサーバーは、構成ファイルまたはコマンドラインを使用して構成できます。
構成ファイルを使用するには、ファイルにこれらのパラメータを指定します。
setParameter:    authenticationMechanisms: MONGODB-OIDC    oidcIdentityProviders: '[ {       "issuer": "https://okta-test.okta.com",       "audience": "example@kernel.mongodb.com",       "authNamePrefix": "okta-issuer",       "authorizationClaim": "groups",       "supportsHumanFlows": false,    } ]' 
複数の ID プロバイダーを指定するには、oidcIdentityProviders 配列にオブジェクトを追加します。複数の ID プロバイダーを指定する場合は、各プロバイダーに対して matchPattern を指定する必要があります。(例: )。
setParameter:    authenticationMechanisms: MONGODB-OIDC    oidcIdentityProviders: '[ {       "issuer": "https://okta-test.okta.com",       "audience": "example@kernel.mongodb.com",       "authNamePrefix": "okta-issuer",       "authorizationClaim": "groups",       "supportsHumanFlows": false,    }, {       "issuer": "https://azure-test.azure.com",       "audience": "example2@kernel.mongodb.com",       "authNamePrefix": "azure-issuer",       "authorizationClaim": "groups",       "supportsHumanFlows": false,    } ]' 
コマンドラインを使用するには、次のスタートアップオプションを指定します。
mongod --auth --setParameter authenticationMechanisms=MONGODB-OIDC --setParameter \ 'oidcIdentityProviders=[ {    "issuer": "https://okta-test.okta.com",    "audience": "example@kernel.mongodb.com",    "authNamePrefix": "okta-issuer",    "authorizationClaim": "groups",    "supportsHumanFlows": false, } ]' 
複数の ID プロバイダーを指定するには、oidcIdentityProviders 配列にオブジェクトを追加します。複数の ID プロバイダーを指定する場合は、各プロバイダーに対して 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",    "supportsHumanFlows": false }, {    "issuer": "https://azure-test.azure.com",    "audience": "example2@kernel.mongodb.com",    "authNamePrefix": "azure-issuer",    "authorizationClaim": "groups",    "supportsHumanFlows": false } ]' 
(任意)内部認可を有効にする
内部認可を有効にするには、oidcIdentityProviders パラメータの useAuthorizationClaimフィールドをfalse に設定します。 この設定により、 IdPからの認可要求ではなく、ユーザー ドキュメントに依存することで、より柔軟なユーザー管理が可能になります。
重要
If useAuthorizationClaim が false に設定されている場合は、 authorizationClaimフィールドを含めないでください。
setParameter:    authenticationMechanisms: MONGODB-OIDC    oidcIdentityProviders: '[ {       "issuer": "https://okta-test.okta.com",       "audience": "example@kernel.mongodb.com",       "authNamePrefix": "okta-issuer",       "useAuthorizationClaim": false,       "supportsHumanFlows": false,    } ]' 
複数の ID プロバイダーを指定するには、oidcIdentityProviders 配列にオブジェクトを追加します。(例: )。
setParameter:    authenticationMechanisms: MONGODB-OIDC       oidcIdentityProviders: '[ {          "issuer": "https://okta-test.okta.com",          "audience": "example@kernel.mongodb.com",          "authNamePrefix": "okta-issuer",          "useAuthorizationClaim": false,          "supportsHumanFlows": false,       }, {          "issuer": "https://azure-test.azure.com",          "audience": "example2@kernel.mongodb.com",          "authNamePrefix": "azure-issuer",          "useAuthorizationClaim": false,          "supportsHumanFlows": false,       } ]' 
mongod --auth --setParameter authenticationMechanisms=MONGODB-OIDC --setParameter \ 'oidcIdentityProviders=[ {    "issuer": "https://okta-test.okta.com",    "audience": "example@kernel.mongodb.com",    "authNamePrefix": "okta-issuer",    "useAuthorizationClaim": false,    "supportsHumanFlows": false, } ]' 
複数の ID プロバイダーを指定するには、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,       "supportsHumanFlows": false,    }, {       "issuer": "https://azure-test.azure.com",       "audience": "example2@kernel.mongodb.com",       "authNamePrefix": "azure-issuer",       "useAuthorizationClaim": false,       "supportsHumanFlows": false,    } ]' 
useAuthorizationClaim を false に設定すると、MONGODB-OIDC メカニズムで認証するユーザーは、$external のユーザードキュメントから認可権を取得します。 サーバーは、 IdPのユーザーに対する OIDC ベースの認証試行ごとに、authNamePrefix/principalName クレームの値と一致する _id を持つユーザードキュメントを検索します。