Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Use certificados x.509 para autenticar clientes

Nesta página

  • Pré-requisitos
  • Procedimento
  • Próximos passos

O procedimento a seguir define a autenticação de certificado x.509 para autenticação de cliente em uma instância mongod standalone.

Para usar a autenticação x.509 para conjuntos de réplicas ou clusters fragmentados, consulte Usar certificado x.509 para autenticação de associação.

Uma descrição completa dos certificados TLS/SSL, PKI (Public Key Infrastructure), em particular os certificados x.509, e da autoridade de certificação está além do escopo deste documento. Este tutorial pressupõe conhecimento prévio de TLS/SSL, bem como 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 a autenticação.

1

Para configurar a autenticação x.509 para conjuntos de réplicas ou agrupamentos fragmentados, consulte Usar certificado x.509 para autenticação de associação.

2

Para autenticar com um certificado de cliente, você deve primeiro adicionar o valor do subject do certificado de cliente como um usuário do MongoDB ao banco de dados do $external. Cada certificado de cliente x.509 exclusivo 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

  • Para usar Client Sessions e Causal Consistency Guarantees com usuários de autenticação $external (usuários Kerberos, LDAP ou x.509), os nomes de usuário não podem ter mais de 10k bytes.

  • Os RDNs na subject string devem ser compatíveis com RFC2253 padrão.

  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 para obter detalhes sobre como adicionar um usuário com roles.

3

Depois de adicionar o x.509 assunto de certificado de cliente como usuário MongoDB correspondente, você pode autenticar com o certificado de cliente:

Para usar a autenticação x.509 para conjuntos de réplicas ou clusters fragmentados, consulte Usar certificado x.509 para autenticação de associação.

← x.509