Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.

Use X.509 para autenticar clientes no MongoDB autogerenciado

O procedimento a seguir define a509 autenticação do certificado X. para autenticação de cliente em uma instância autônomo . Isso também é conhecido como TLS Mutual ou mongod mTLS.

Para usar a autenticação X.509 para conjuntos de réplicas ou clusters fragmentados, consulte Verificar associação de cluster com X.509 no MongoDB autogerenciado.

Uma descrição completa dos certificados TLS/SSL, PKI (Public Key Infrastructure), em particular os certificados X.509, e a autoridade de certificação está além do escopo deste documento. Este tutorial pressupõe o conhecimento prévio de TLS/SSL, bem como o acesso a certificados X.509 válidos.

Para uso em produção, seu MongoDB deployment deve usar certificados válidos gerados e assinados por uma autoridade de certificação. Você ou sua organização podem gerar e manter uma autoridade de certificação independente ou usar certificados gerados por fornecedores de TLS de terceiros. Obter e gerenciar certificados está além do escopo desta documentação.

Para usar a autenticação X.509, --tlsCAFile ou net.tls.CAFile deve-se especificar a menos que você esteja usando --tlsCertificateSelector ou --net.tls.certificateSelector.

Você deve ter certificados X.509 válidos. Os certificados X.509 do cliente devem atender aos requisitos de certificado do cliente.

Se você especificar --tlsAllowInvalidCertificates ou net.tls.allowInvalidCertificates: true, um certificado inválido será suficiente apenas para estabelecer uma conexão TLS, mas será insuficiente para autenticação.

1

Você pode configurar uma mongod instância para autenticação X.509 na linha de comando.

Para configurar uma instância standalone do mongod, execute o seguinte comando:

mongod --tlsMode requireTLS \ --tlsCertificateKeyFile <path to TLS/SSL certificate and key PEM file> \ --tlsCAFile <path to root CA PEM file> --bind_ip <hostnames>

Inclua opções adicionais, conforme necessário, para sua configuração.

A configuração X.509 exige:

Opção
Notas

Especifique requireTLS.

Especifique o certificado X.509 da instância para apresentar aos clientes.

Especifique o arquivo da autoridade de certificação para verificar os certificados apresentados à instância.

Para configurar a autenticação X.509 para conjuntos de réplicas ou clusters fragmentados, consulte Verificar associação do cluster com X.509 no MongoDB autogerenciado.

2

Para autenticar com um certificado de cliente , você deve primeiro adicionar o valor do subject certificado de cliente como um usuário do MongoDB ao $external banco de dados do . Cada certificado exclusivo de cliente X.509 corresponde a um único usuário do MongoDB . Você não pode usar um único certificado de cliente para autenticar mais de um usuário do MongoDB .

Observação

Requisitos do nome de usuário

  1. Você pode recuperar o RFC2253 formatado subject do certificado do cliente com o seguinte comando:

    openssl x509 -in <pathToClientPEM> -inform PEM -subject -nameopt RFC2253

    O comando retorna a string subject e o certificado:

    subject= CN=myName,OU=myOrgUnit,O=myOrg,L=myLocality,ST=myState,C=myCountry-----BEGIN CERTIFICATE-----# ...-----END CERTIFICATE-----
  2. Adicione o valor compatível com RFC2253 do subject como usuário. Omita espaços conforme necessário.

    O exemplo a seguir adiciona um usuário e concede a ele a role readWrite no banco de dados test e a role userAdminAnyDatabase:

    db.getSiblingDB("$external").runCommand( { createUser: "CN=myName,OU=myOrgUnit,O=myOrg,L=myLocality,ST=myState,C=myCountry", roles: [ { role: "readWrite", db: "test" }, { role: "userAdminAnyDatabase", db: "admin" } ], writeConcern: { w: "majority" , wtimeout: 5000 } })

    Consulte Gerenciar usuários e funções em implantações autogerenciadas para obter detalhes sobre como adicionar um usuário com funções.

3

Após adicionar o assunto do certificado de cliente x.509 como um usuário MongoDB correspondente, você pode autenticar com o certificado de cliente:

Para autenticar durante a conexão, execute o seguinte comando:

mongosh --tls --tlsCertificateKeyFile <path to client PEM file> \ --tlsCAFile <path to root CA PEM file> \ --authenticationDatabase '$external' \ --authenticationMechanism MONGODB-X509
Opção
Notas

Especifique o arquivo X.509 do cliente.

Especifique o arquivo da autoridade de certificação para verificar o certificado apresentado pela instância mongod.

Especifique '$external'.

Especifique MONGODB-X509.

Para usar a autenticação X.509 para conjuntos de réplicas ou clusters fragmentados, consulte Verificar associação de cluster com X.509 no MongoDB autogerenciado.