Configure o MongoDB com o Workload Identity Federation para autenticar serviços em diferentes plataformas. Isso aumenta a segurança e simplifica o gerenciamento de identidade do serviço.
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 provedor de identidade externo. Para obter mais detalhes, consulte Configurar Federação de Identidade do Volume de Trabalho.
Passos
Configurar o servidor MongoDB com OpenID Connect (OIDC)
Para configurar o MongoDB Server, habilite o mecanismo de autenticação MONGODB-OIDC e use oidcIdentityProviders para especificar as configurações do provedor de identidade (IDP).
Observação
Ao configurar MongoDB para Workload Identity Federation, configure o supportsHumanFlows campo oidcIdentityProviders em false para.
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", "supportsHumanFlows": false, } ]'
Para especificar vários fornecedores de identidade, 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", "authorizationClaim": "groups", "supportsHumanFlows": false, }, { "issuer": "https://azure-test.azure.com", "audience": "example2@kernel.mongodb.com", "authNamePrefix": "azure-issuer", "authorizationClaim": "groups", "supportsHumanFlows": false, } ]'
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", "supportsHumanFlows": false, } ]'
Para especificar vários fornecedores de identidade, 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", "authorizationClaim": "groups", "supportsHumanFlows": false }, { "issuer": "https://azure-test.azure.com", "audience": "example2@kernel.mongodb.com", "authNamePrefix": "azure-issuer", "authorizationClaim": "groups", "supportsHumanFlows": false } ]'
(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 em declarações de autorização do provedor de identidade.
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, "supportsHumanFlows": false, } ]'
Para especificar vários fornecedores de identidade, 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, "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, } ]'
Para especificar vários fornecedores de identidade, 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, "supportsHumanFlows": false, }, { "issuer": "https://azure-test.azure.com", "audience": "example2@kernel.mongodb.com", "authNamePrefix": "azure-issuer", "useAuthorizationClaim": false, "supportsHumanFlows": false, } ]'
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 documento de usuário 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 provedor de identidade.
(Condicional) Certificados de CA para X509 TLS interno
Para ambientes que utilizam509 certificados X 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 do volume 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.