Configure o MongoDB com o Workforce Identity Federation para autenticar usuários em diferentes plataformas usando um único conjunto de credenciais. Isso aumenta a segurança e simplifica o gerenciamento de usuários.
Importante
O OpenID Connect (OIDC) é compatível apenas com Linux.
Antes de começar
Verifique se você está no MongoDB Enterprise.
Para verificar se você está usando o MongoDB Enterprise, passe a
--versionopção de linha de comando para omongodmongosou:mongod --version Na saída deste comando, procure a string
modules: subscriptionoumodules: enterprisepara confirmar que você está usando os binários MongoDB Enterprise.Configure seu IdP externo. Para obter mais detalhes, consulte Configurar o OIDC para autenticação da força de trabalho.
Passos
Configurar o servidor MongoDB com OpenID Connect (OIDC)
Observação
Ao configurar MongoDB para Federação de Identidade da Força de Trabalho, omita o campo supportsHumanFlows em oidcIdentityProviders.
Você pode configurar o servidor MongoDB utilizando seu arquivo de configuração ou linha de comando.
Para usar seu arquivo de configuração, especifique estes parâmetros no arquivo:
setParameter: authenticationMechanisms: MONGODB-OIDC oidcIdentityProviders: '[ { "issuer": "https://okta-test.okta.com", "audience": "example@kernel.mongodb.com", "authNamePrefix": "okta-issuer", "authorizationClaim": "groups", "clientId": "0zzw3ggfd2ase33", } ]'
Para especificar vários IdPs, adicione objetos adicionais à array oidcIdentityProviders. Ao especificar vários IdPs, você deve especificar um matchPattern para cada provedor. Por exemplo:
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", } ]'
Para usar a linha de comando, especifique as seguintes opções de inicialização:
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", } ]'
Para especificar vários IdPs, adicione objetos adicionais à array oidcIdentityProviders. Ao especificar vários IdPs, você deve especificar um matchPattern para cada provedor. Por exemplo:
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", } ]'
(Opcional) Habilitar autorização interna
Para habilitar a autorização interna, configure o campo useAuthorizationClaim do parâmetro oidcIdentityProviders para false. Essa configuração permite um gerenciamento de usuários mais flexível, dependendo dos documentos do usuário em vez de declarações de autorização do IdP.
Importante
Se useAuthorizationClaim estiver definido como false, não inclua o campo authorizationClaim.
setParameter: authenticationMechanisms: MONGODB-OIDC oidcIdentityProviders: '[ { "issuer": "https://okta-test.okta.com", "audience": "example@kernel.mongodb.com", "authNamePrefix": "okta-issuer", "useAuthorizationClaim": false, "clientId": "0zzw3ggfd2ase33" } ]'
Para especificar vários IdPs, adicione objetos adicionais à array oidcIdentityProviders. Por exemplo:
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" } ]'
Para especificar vários IdPs, adicione objetos adicionais à array oidcIdentityProviders. Por exemplo:
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" } ]'
Ao definir useAuthorizationClaim como false, os usuários que se autenticam com o mecanismo MONGODB-OIDC obtêm seus direitos de autorização de um user document no $external. O servidor pesquisa um documento de usuário com um _id correspondente ao valor da declaração authNamePrefix/principalName para cada tentativa de autenticação baseada em OIDC para um usuário do seu IdP.
(Condicional) Certificados de CA para X509 TLS interno
Para ambientes que utilizam certificados X509 TLS assinados por uma Autoridade de Certificação (CA) interna, você deve adicionar o certificado CA ao pacote de certificados CA do sistema para que mongod possa se comunicar com o provedor de identidade. Isso se aplica à autenticação do usuário e à autenticação da carga de trabalho ao usar o método de chamada de resposta. A omissão desta etapa pode resultar em erros de Certificado SSL OIDC ou de Verificação de Chave JWT.
oidcIdentityProviders para clusters fragmentados
Em um cluster fragmentado, configure oidcIdentityProviders em cada instância do mongos. Os clientes autenticam por meio do mongos, que exige esta configuração para verificar tokens do provedor de identidade. Se os clientes se conectarem diretamente aos servidores de configuração ou às instâncias do fragmento mongod, você também deverá configurar o oidcIdentityProviders nessas instâncias.
Aplique as etapas deste tutorial para cada instância do mongos em sua implantação. Para configurar usuários de banco de dados para o Workforce Identity Federation, consulte Autorizar usuários com o Workforce Identity Federation.