Menu Docs
Página inicial do Docs
/
MongoDB Atlas
/ / /

Configurar autenticação e autorização de usuário com os serviços de domínio do Microsoft Entra ID

Nesta página

  • Limitações
  • Acesso necessário
  • Pré-requisitos
  • Procedimentos
  • Configurar os serviços de domínio do Microsoft Entra ID para o seu domínio
  • Configurar Atlas para Autenticação LDAP
  • Adicionar o Acesso ao Banco de Dados GruposLDAP ao Atlas
  • Configurar Atlas para Autorização LDAP
  • Conecte-se ao seu cluster usando mongosh
  • Solução de problemas de conexão LDAP

Observação

Começar com MongoDB 8.0, A autenticação e autorização LDAP estão obsoletas. O recurso está disponível e continuará a operar sem alterações durante toda a vida útil do MongoDB 8. O LDAP será removido em uma versão principal futura.

Para obter detalhes, consulte Descontinuação do LDAP .

Observação

Este recurso não está disponível para nenhuma das seguintes implantações:

  • Instâncias sem servidor

  • M0 clusters

  • M2/M5 clusters

  • Clusters flexíveis

Para saber mais,consulte Limites.

Este guia mostra como habilitar o Atlas para autenticar e autorizar usuários do banco de dados (não usuários do Atlas) do Microsoft Entra ID Domain Services, um provedor LDAP de terceiros.

Você pode habilitar somente a autenticação LDAP ou habilitar a autenticação e a autorização LDAP:

  • Se você habilitar somente a autenticação LDAP, você adicionará usuários individuais no Atlas e atribuirá privilégios de acesso do banco de dados para cada usuário que você adicionar.

  • Se você habilitar a autenticação e autorização LDAP, adicionará grupos de usuários ao Atlas e atribuirá privilégios de acesso ao banco de dados a cada grupo. Os usuários herdam os privilégios de acesso ao banco de dados do grupo LDAP ao qual pertencem.

O Atlas permite autenticar e autorizar usuários do banco de dados a partir dos serviços de domínio do Microsoft Entra ID.

  • Você deve implantar clusters Atlas M10 ou maiores para habilitar a integração LDAP. A integração do LDAP é um recurso do Atlas Enterprise.

  • O Atlas não permite a integração de registro único para usuários de banco de dados. Para saber mais sobre a integração de registro único para a interface administrativa do Atlas na Web, consulte Configurar Autenticação Federada.

Para gerenciar usuários ou grupos LDAP, você deve ter acesso de Organization Owner ou Project Owner ao Atlas.

Para integrar o LDAP dos serviços de domínio do Microsoft Entra ID com o Atlas, é necessário ter:

  • Uma assinatura do Azure. Para obter uma assinatura, visite o portal do Microsoft Azure.

  • Contributor ou superior para sua assinatura do Azure para criar os recursos que a integração LDAP exige.

  • Um locatário de Microsoft Entra ID associado à sua assinatura. Para obter informações sobre como configurar um locatário do Microsoft Entra ID, consulte a documentação do Microsoft Entra ID .

  • Global Administrator privilégios em seu locatário do Microsoft Entra ID para habilitar os serviços de domínio do Microsoft Entra ID.

  • Um nome de domínio personalizado e roteável.

1

Para configurar os Serviços de Domínio do ID do Microsoft Entra, siga o Criar um domínio gerenciado avançado tutorial na documentação do Azure usando a Custom domain names opção de nome DNS do .

Ao configurar seu domínio gerenciado, certifique-se de notar o valor inserido no campo DNS domain name. Este valor é o seu <managed-domain>. Você deve fornecê-lo em vários lugares deste tutorial.

Exemplo

aadds.example.com

2

Os serviços de domínio do Microsoft Entra ID usa certificados SSL para o LDAP seguro. Seu certificado deve seguir os requisitos descritos na documentação do Azure.

Para obter um certificado,:

  • Obtenha um da autoridade de certificação pública ou empresarial (CA) que sua organização utiliza.

    • Você deve obter um certificado curinga para garantir que o LDAP seguro funcione corretamente com os serviços de domínio do Microsoft Entra ID.

    • O nome do assunto do certificado deve corresponder ao <managed-domain> que você utilizou quando configurou os serviços de domínio do Microsoft Entra ID.

      Exemplo

      *.aadds.example.com

  • Gere um certificado auto assinado. Os certificados autoassinados não são recomendados para produção.

Para gerar um certificado auto assinado em sistemas MacOS ou Linux para fins de teste:

Observação

Se você estiver no macOS Catalina, instale a versão mais recente do openssl. Execute o seguinte comando para instalar usando Homebrew:

brew install openssl
  1. Gere uma chave privada com openssl. O seguinte comando gera um arquivo de chave privada denominado <your-key-name>.key:

    openssl genrsa -out <your-key-name>.key 2048
  2. Edite o seguinte modelo de arquivo de configuração. Atualize os atributos na seção [dn-param] com valores que se relacionam com sua organização. Certifique-se de que o nome do assunto (CN) corresponde ao seguinte modelo: *.<managed-domain>

    Exemplo

    *.aadds.example.com

    # openssl x509 extfile params
    extensions = extend
    [req] # openssl req params
    prompt = no
    distinguished_name = dn-param
    [dn-param] # DN fields
    C = US
    ST = NY
    L = New York
    O = MongoDB
    OU = Atlas
    CN = *.aadds.example.com
    [extend] # openssl extensions
    subjectKeyIdentifier = hash
    authorityKeyIdentifier = keyid:always
    keyUsage = digitalSignature,keyEncipherment,keyCertSign
    extendedKeyUsage=serverAuth,clientAuth
  3. Salve o arquivo como <your-config-name>.cfg.

  4. Gere uma solicitação de assinatura de certificado utilizando a chave e os arquivos de configuração que você criou. O seguinte comando gera um pedido de assinatura de certificado denominado <your-csr-name>.csr:

    openssl req -new -key <your-key-name>.key \
    -out <your-csr-name>.csr -config <your-config-name>.cfg \
    -extensions extend
  5. Gere um certificado autoassinado usando os arquivos de solicitação de chave, configuração e assinatura de certificado que você criou. O seguinte comando gera um arquivo de certificado auto assinado denominado <your-cert-name>.crt:

    openssl x509 -req -sha256 -days 365 -in <your-csr-name>.csr \
    -signkey <your-key-name>.key -out <your-cert-name>.crt \
    -extfile <your-config-name>.cfg

Para gerar um certificado auto assinado em um sistema Windows para fins de teste, consulte a documentação Azure.

3

Os serviços de domínio do Microsoft Entra ID usa chaves privadas para descriptografar o tráfego LDAP seguro. Os certificados que incluem chaves privadas utilizam o formato PKCS#12 e o formato de arquivo .pfx. Você deve carregar um certificado desse formato nos serviços de domínio do Microsoft Entra ID para descriptografar o tráfego LDAP seguro enviado por meio da internet pública.

Para gerar um certificado .pfx em sistemas MacOS ou Linux:

  1. Salve sua chave pública e certificado SSL em sua máquina local.

    Observação

    Seu certificado deve usar o formato PEM.

    Se o seu certificado não contiver sua chave privada, você poderá salvar sua chave privada em um arquivo de formato .key.

  2. Gere um certificado do .pfx utilizando sua chave privada e seu certificado com openssl. O seguinte comando gera um arquivo de certificado do .pfx denominado <your-cert-name>.pfx:

    openssl pkcs12 -export -out <your-cert-name>.pfx \
    -inkey <your-key-name>.key -in <your-cert-name>.crt

    Quando solicitado, insira e verifique uma senha para criptografar o arquivo. Você digitará essa senha para descriptografar sua chave privada ao carregar o certificado .pfx para os serviços de domínio do Microsoft Entra ID.

Para gerar um certificado do .pfx em um sistema Windows, consulte a documentação do Azure.

4

Para habilitar o LDAP seguro nos serviços de domínio do Microsoft Entra ID, consulte a documentação do Azure.

5

Você deve configurar seu provedor de DNS para que o Atlas e os nós do banco de dados possam se conectar ao servidor LDAP no domínio personalizado que os serviços de domínio do Microsoft Entra ID gerencia.

Crie um registro de host para o tráfego LDAP que resolva um subdomínio do seu <managed-domain> para o endereço IP externo que o serviço LDAP dos serviços de domínio do Microsoft Entra ID usa:

Endereço IP LDAP
Subdomínio para tráfego LDAP

203.0.113.77

ldap.aadds.example.com

Para encontrar o endereço IP externo usado pelo serviço LDAP dos serviços de domínio do Microsoft Entra ID, consulte a documentação do Azure.

6

Adicione seu nome de domínio personalizado ao Microsoft Entra ID para criar usuários que pertençam ao seu domínio. Após adicionar seu domínio, você também deve adicionar as informações de DNS do Microsoft Entra ID em um registro do TXT com seu provedor de DNS e verificar a configuração.

Para adicionar seu domínio personalizado ao Microsoft Entra ID,consulte a documentação do Azure.

7

É necessário permitir que todo o tráfego em todas as portas da internet pública até a porta 636 utilize os serviços de domínio do Microsoft Entra ID como um fornecedor LDAP com o Atlas.

Para adicionar uma regra de segurança de entrada para permitir tráfego LDAP de entrada na porta 636, consulte a documentação do Azure.

8

Crie um usuário vinculado. O usuário vinculado é um usuário do Microsoft Entra ID que você usa para fazer query na conta e autenticar as credenciais dos usuários do banco de dados quando eles se conectam a um banco de dados do Atlas. O usuário vinculado deve pertencer ao domínio personalizado que você adicionou ao Microsoft Entra ID.

Para criar usuários do Microsoft Entra ID, consulte a documentação do Azure.

9

Você deve gerar um hash de senha para o usuário vinculado para autenticação Kerberos e NTLM antes que o usuário vinculado possa usar os serviços de domínio do Microsoft Entra ID. As etapas dependem do tipo de conta de usuário do Microsoft Entra ID.

Para saber como gerar hashes de senha para seus usuários, consulte a documentação do Azure.

10

Para fazer query no Microsoft Entra ID, o usuário vinculado deve ter permissões concedidas por meio da função Leitores de Diretório.

Para atribuir a função Leitores de Diretório ao usuário associado, consulte a documentação do Azure.

11

Se ainda não existirem, crie usuários nos serviços de domínio do Microsoft Entra ID ao quais você deseja conceder acesso ao banco de dados. Os usuários devem pertencer ao domínio personalizado que você adicionou ao Microsoft Entra ID.

Para criar usuários do Microsoft Entra ID, consulte a documentação do Azure.

O procedimento abaixo permite ao Atlas autenticar usuários do banco de dados a partir do LDAP dos serviços de domínio do Microsoft Entra ID:

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.

  3. Na barra lateral, clique em Advanced sob o título Security.

    A página Avançado é exibida.

2

Observação

Você poderá incorrer em custos adicionais ao ativar esse recurso. Consulte Segurança avançada.

3

Você pode listar vários servidores separados por vírgulas. Você não pode usar portas diferentes.

4

Adicione um mapeamento de usuário ao DN semelhante ao exemplo a seguir para permitir que os clientes forneçam seu nome de usuário em vez de DNs completos ao se conectarem aos bancos de dados Atlas:

[
{
"match":"(.+)",
"substitution":"CN={0},OU=AADDC Users,DC=<managed-domain>,DC=com"
}
]

Observação

Para os serviços de domínio do Microsoft Entra ID, os atributos em nomes distintos devem estar em letras maiúsculas.

Se o seu <managed-domain> consiste em um ou mais subdomínios, você deve adicionar um atributo DC (domainComponent) ao nome distinto para cada um.

Exemplo

Se o seu <managed-domain> for aadds.example.com, os componentes do domínio são:

DC=aadds,DC=example,DC=com

5

Você pode fornecer certificados autoassinados.

6

Aguarde o Atlas implementar suas alterações. O Atlas verifica se seus clusters podem se conectar, autenticar e executar query de seus servidores LDAP usando os detalhes de configuração que você forneceu.

7
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.

  3. Na barra lateral, clique em Database Access sob o título Security.

    A página Acesso ao banco de dados é exibida.

8

Observação

Ignore esta etapa se quiser habilitar a autorização LDAP.

Adicione usuários gerenciados no Azure AD no Atlas.

  1. Clique em Add New Database User.

  2. Clique em LDAP User.

  3. Execute um dos seguintes procedimentos:

    1. Se você não inseriu um User to DN Mapping, insira o DN completo do usuário LDAP. Siga este modelo:

      CN=<user-name>,OU=AADDC Users,DC=<managed>,DC=<domain>,DC=com

      Por exemplo, se o seu <user-name> é Jane Doe e o seu <managed-domain> é aadds.example.com, o seu DN do utilizador é:

      CN=Jane Doe,ou=AADDC Users,DC=aadds,DC=example,DC=com
    2. Se você inseriu um User to DN Mapping, insira o nome de usuário que seu mapeamento exige.

  4. Selecione o nível de acesso do banco de dados para conceder ao usuário.

  5. Clique em Add User.

Observação

Pule esta seção se não quiser habilitar a autorização do LDAP.

Importante

  • Você deve habilitar a autenticação com LDAP antes de habilitar a autorização.

  • Ao ativar e configurar a autorização LDAP, os usuários do banco de dados que estiverem configurados apenas para autenticação LDAP não poderão mais acessar os bancos de dados.

A autorização LDAP do Atlas utiliza grupos LDAP para determinar se os usuários estão autorizados a executar ações do banco de dados.

Crie grupos separados do Microsoft Entra ID para cada nível de acesso que você deseja conceder aos usuários. Por exemplo, crie um grupo para acesso de leitura a um banco de dados, outro para acesso de leitura e gravação e assim por diante. Atribua usuários a grupos com base no nível de acesso que cada usuário exige.

Para criar grupos de acesso ao banco de dados do Microsoft Entra ID e atribuir usuários, consulte a documentação do Azure.

Observação

Pule esta seção se não quiser habilitar a autorização do LDAP.

O procedimento abaixo adiciona os grupos de acesso ao banco de dados dos serviços de domínio do Microsoft Entra ID ao Atlas, e habilita a autorização do usuário do banco de dados no Atlas:

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.

  3. Na barra lateral, clique em Database Access sob o título Security.

    A página Acesso ao banco de dados é exibida.

2

Adicione cada um dos grupos de banco de dados Azure que você criou no Atlas. Membros de grupos que você adiciona estão autorizados a executar ações do banco de dados concedidas ao grupo.

  1. Clique em Add New Database User.

  1. Clique em LDAP Groupe, em seguida, insira o DN completo do grupo que contém os usuários do banco de dados, mesmo que você tenha habilitado User to DN Mapping. Siga este modelo:

    CN=<group-name>,OU=AADDC Users,DC=<managed-domain>,DC=com

    Observação

    Para os serviços de domínio do Microsoft Entra ID, os atributos em nomes distintos devem estar em letras maiúsculas.

    Se o seu <managed-domain> consiste em um ou mais subdomínios, você deve adicionar um atributo DC (domainComponent) ao nome distinto para cada um.

    Exemplo

    Se o seu <managed-domain> for aadds.example.com, os componentes do domínio são:

    DC=aadds,DC=example,DC=com

    Por exemplo, se o seu <group-name> é Atlas read only e o seu <managed-domain> é aadds.example.com, o seu DN do utilizador é:

    CN=Atlas read only,OU=AADDC Users,DC=aadds,DC=example,DC=com
  1. Selecione o nível de acesso ao banco de dados para conceder aos usuários deste grupo.

  2. Clique em Add User.

3
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.

  3. Na barra lateral, clique em Advanced sob o título Security.

    A página Avançado é exibida.

4
5
6

Quando um usuário tenta executar uma ação, o Atlas executa o modelo de query LDAP para obter os grupos LDAP aos quais o usuário autenticado pertence. O Atlas permite a ação se a query retornar pelo menos um grupo autorizado a executar a ação. O Atlas não permite a ação se a query não retornar grupos autorizados a executar a ação.

O Atlas substitui o nome de usuário autenticado no espaço reservado {USER} quando executa a query. A query é relativa ao host especificado no Server Hostname.

A formatação da query deve estar em conformidade com RFC4515.

Se quiser identificar de qual grupo um usuário é membro, você pode usar o padrão Query Template:

{USER}?memberOf?base

Observação

Outros modelos de query também podem funcionar.

7

Aguarde o Atlas implementar suas alterações. O Atlas verifica se seus clusters podem se conectar, autenticar e executar query de seu servidor LDAP usando os detalhes de configuração fornecidos por você.

O procedimento a seguir verifica se a autenticação LDAP (e a autorização LDAP , se habilitada) está configurada corretamente:

Observação

Quando a autenticação LDAP está habilitada, os usuários do banco de dados devem substituir os seguintes parâmetros na cadeia de conexão para seus clientes:

  • authSource deve ser $external

  • authenticationMechanism deve ser PLAIN

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.

  3. Se ainda não estiver exibido, clique em Clusters na barra lateral.

    A página Clusters é exibida.

2

Para copiar a cadeia de conexão:

  1. Clique em Connect.

  2. Clique em LDAP e depois em Copy.

  3. Cole e edite a string com seu DN de usuário e senha.

Observação

Conecte-se ao cluster com o DN completo de um usuário se o mapeamento de usuário para DN não estiver habilitado.

Observação

Para os serviços de domínio do Microsoft Entra ID, os atributos em nomes distintos devem estar em letras maiúsculas.

Se o seu <managed-domain> consiste em um ou mais subdomínios, você deve adicionar um atributo DC (domainComponent) ao nome distinto para cada um.

Exemplo

Se o seu <managed-domain> for aadds.example.com, os componentes do domínio são:

DC=aadds,DC=example,DC=com

Espaços de escape em nomes de usuários ou grupos no DN completo do usuário:

--username CN=Jane\ Doe,OU=AADDC\ Users,DC=aadds,DC=example,DC=com

Observação

Se você estiver usando um DN completo do usuário, inclua apenas o AADDC Users OU (Unidade Organizacional). Não inclua outros grupos do Microsoft Entra ID dos quais o usuário seja membro.

3

Observação

Nos Serviços de Domínio ID da Microsoft Entra, o usuário vinculado deve ser um membro do grupo Microsoft Entra ID DC Administrators para executar pesquisas de LDAP. Certifique-se de que o usuário vinculado tenha esses privilégios antes de executar ldapsearch.

Use ldapsearch para determinar se o modelo de consulta ao qual você configurou o Atlas para usar retorna o DNs do usuário da maneira que você espera. O modelo de query pode não estar retornando os DNs de usuário corretos se a autenticação LDAP funcionar, mas a autorização LDAP não.

Use o seguinte modelo do ldapsearch:

ldapsearch -H 'ldaps://ldap.<managed-domain>.com' -b 'DC=<managed>,DC=<domain>,DC=com' -s sub -D 'CN=<bind-user-dn>,OU=AADDC Users,DC=<managed>,DC=<domain>,DC=com' -w '<REDACTED>' '(&(objectCategory=user)(memberOf=CN=<group-name>,OU=AADDC Users,DC=<managed-domain>,DC=com))'

Observação

Para os serviços de domínio do Microsoft Entra ID, os atributos em nomes distintos devem estar em letras maiúsculas.

Se o seu <managed-domain> consiste em um ou mais subdomínios, você deve adicionar um atributo DC (domainComponent) ao nome distinto para cada um.

Exemplo

Se o seu <managed-domain> for aadds.example.com, os componentes do domínio são:

DC=aadds,DC=example,DC=com

Por exemplo, se seu bind-user-dn for CN=LDAP Bind User,OU=AADDC Users,DC=aadds,DC=example,DC=com, seu <managed-domain> for aadds.example.com e seu group-name for Atlas read only, utilize o seguinte comando:

ldapsearch -H 'ldaps://ldap.aadds.example.com' -b 'DC=aadds,DC=example,DC=com' -s sub -D 'CN=LDAP Bind User,OU=AADDC Users,DC=aadds,DC=example,DC=com' -w '<REDACTED>' '(&(objectCategory=user)(memberOf=CN=Atlas read only,OU=AADDC Users,DC=aadds,DC=example,DC=com))'

Observação

Outros modelos de query também podem funcionar.

Voltar

LDAP