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
clustersM2/M5
clustersClusters 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.
Limitações
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.
Acesso necessário
Para gerenciar usuários ou grupos LDAP, você deve ter acesso de Organization Owner
ou Project Owner
ao Atlas.
Pré-requisitos
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.
Procedimentos
Configurar os serviços de domínio do Microsoft Entra ID para o seu domínio
Configurar os serviços de domínio do Microsoft Entra ID para seu domínio.
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
Obtenha um certificado SSL para LDAP seguro.
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
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 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 Salve o arquivo como
<your-config-name>.cfg
.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 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.
Obtenha um certificado SSL que inclua sua chave privada.
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:
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
.Gere um certificado do
.pfx
utilizando sua chave privada e seu certificado comopenssl
. 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.
Habilite o LDAP seguro nos serviços de domínio do Microsoft Entra ID.
Para habilitar o LDAP seguro nos serviços de domínio do Microsoft Entra ID, consulte a documentação do Azure.
Configure seu provedor de DNS.
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 |
---|---|
|
|
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.
Adicione seu domínio personalizado ao Microsoft Entra ID.
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.
Configurar os serviços de domínio do Microsoft Entra ID para tráfego LDAP de entrada.
É 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.
Crie um usuário vinculado.
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.
Habilite a conta do usuário vinculado para os serviços de domínio do Microsoft Entra ID.
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.
Atribua o papel de Leitores de Diretório à conta de usuário vinculada.
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.
Crie usuários do Microsoft Entra ID.
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.
Configurar Atlas para Autenticação LDAP
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:
No Atlas, váGo para a Advanced página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.
Na barra lateral, clique em Advanced sob o título Security.
A página Avançado é exibida.
Alterne o botão ao lado de LDAP Authentication para On.
Observação
Você poderá incorrer em custos adicionais ao ativar esse recurso. Consulte Segurança avançada.
Adicionar um usuário ao mapeamento de DN.
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
No Atlas, váGo para a Database Access página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.
Na barra lateral, clique em Database Access sob o título Security.
A página Acesso ao banco de dados é exibida.
Adicione usuários LDAP ao Atlas.
Observação
Ignore esta etapa se quiser habilitar a autorização LDAP.
Adicione usuários gerenciados no Azure AD no Atlas.
Clique em Add New Database User.
Clique em LDAP User.
Execute um dos seguintes procedimentos:
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 Se você inseriu um User to DN Mapping, insira o nome de usuário que seu mapeamento exige.
Selecione o nível de acesso do banco de dados para conceder ao usuário.
Clique em Add User.
Adicione os grupos LDAP de acesso ao banco de dados ao Atlas
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.
Configurar Atlas para Autorização LDAP
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:
No Atlas, váGo para a Database Access página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.
Na barra lateral, clique em Database Access sob o título Security.
A página Acesso ao banco de dados é exibida.
Adicione os grupos LDAP de acesso de banco de dados ao Atlas.
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.
Clique em Add New Database User.
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 atributoDC
(domainComponent) ao nome distinto para cada um.Exemplo
Se o seu
<managed-domain>
foraadds.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
Selecione o nível de acesso ao banco de dados para conceder aos usuários deste grupo.
Clique em Add User.
No Atlas, váGo para a Advanced página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.
Na barra lateral, clique em Advanced sob o título Security.
A página Avançado é exibida.
Insira um modelo de query em Query Template.
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.
Conecte-se ao seu cluster usando mongosh
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 serPLAIN
No Atlas, váGo para a Clusters página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Se ainda não estiver exibido, clique em Clusters na barra lateral.
A página Clusters é exibida.
Use o mongosh
para fazer a conexão com seu cluster com as credenciais de usuário que você adicionou no Atlas.
Para copiar a cadeia de conexão:
Clique em Connect.
Clique em LDAP e depois em Copy.
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.
Solução de problemas de conexão LDAP
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.