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

Autenticação Kerberos em sistemas autogerenciados

Nesta página

  • Visão geral
  • Componentes do Kerberos e MongoDB
  • Considerações operacionais
  • Ambientes do MongoDB com autenticação Kerberos
  • Teste e verificação

O MongoDB Enterprise fornece suporte para autenticação Kerberos de clientes MongoDB para mongod mongos instâncias e. O Kerberos é um protocolo de autenticação padrão do setor para grandes sistemas de cliente/ servidor . O Kerberos permite que o MongoDB e os aplicativos aproveitem os processos e a infraestrutura de autenticação existentes. O MongoDB Enterprise é compatível apenas com a implementação do MIT do Kerberos.

Em um sistema baseado no Kerberos, cada participante da comunicação autenticada é conhecido como "principal", e cada principal deve ter um nome exclusivo.

Os principais pertencem a unidades administrativas chamadas realms. Para cada realm, o Centro de Distribuição de Chaves (KDC) Kerberos mantém um banco de dados do realm principal e das "chaves secretas" associadas aos principais.

Para uma autenticação cliente-servidor, o cliente solicita ao KDC um "ticket" para acessar um ativo específico. O KDC usa o segredo do cliente e o segredo do servidor para criar o ticket, o que permite que o cliente e o servidor se autentiquem mutuamente, mantendo os segredos ocultos.

Para a configuração do MongoDB para o suporte ao Kerberos, dois tipos de nomes principais são de interesse: principal do usuário e principal do serviço.

Para autenticar usando o Kerberos, adicione as entidades de usuário do Kerberos ao MongoDB no banco de dados $external. Os nomes de entidades de usuário têm o formato:

<username>@<KERBEROS REALM>

Para cada usuário que você deseja autenticar utilizando Kerberos, você deve criar um usuário correspondente no MongoDB no banco de dados $external.

Para usar sessões de cliente e garantias de consistência causal 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.

Para exemplos de como adicionar um usuário ao MongoDB , bem como autenticar como este usuário, veja Como configurar o MongoDB com a autenticação Kerberos no Linux e Como configurar o MongoDB com a autenticação Kerberos no Windows.

Dica

Veja também:

Gerenciar usuários e funções em sistemas autogerenciados para obter informações gerais sobre a criação e o gerenciamento de usuários no MongoDB.

Cada instância do MongoDB mongod e mongos (ou mongod.exe ou mongos.exe no Windows) deve ter um principal de serviço associado. Os nomes dos principais de serviço têm o formato:

<service>/<fully qualified domain name>@<KERBEROS REALM>

Para MongoDB, o <service> é padronizado para mongodb. Por exemplo, se o m1.example.com for um servidor MongoDB e o example.com mantiver o domínio Kerberos EXAMPLE.COM, então o m1 deverá ter o nome principal de serviço mongodb/m1.example.com@EXAMPLE.COM.

Para especificar um valor diferente para <service>, utilize serviceName durante a inicialização de mongod ou mongos (ou mongod.exe ou mongos.exe). mongosh ou outros clientes também podem especificar um nome principal do serviço diferente utilizando serviceName.

Os nomes de entidades de serviço devem ser acessíveis pela rede usando a parte do nome de domínio totalmente qualificado (FQDN) do seu nome de entidade de serviço.

Por padrão, o Kerberos tenta identificar os hosts utilizando o arquivo /etc/krb5.conf antes de utilizar o DNS para determinar os hosts.

No Windows, se estiver executando o MongoDB como um serviço, consulte Atribuir nome principal de serviço ao serviço MongoDB no Windows.

Os sistemas Linux podem armazenar chaves de autenticação Kerberos para uma entidade de serviço em arquivos keytab. Cada instância Kerberized mongod e mongos em execução no Linux deve ter acesso a um arquivo keytab que contenha as chaves de sua entidade de serviço.

Para manter os arquivos keytab seguros, use permissões de arquivo que restringem o acesso somente ao usuário que executa o processo mongod ou mongos.

No Linux, clientes do MongoDB podem usar o programa kinit do Kerberos para inicializar um cache de credenciais para autenticar a entidade de usuário nos servidores.

Diferentemente dos sistemas Linux, as instâncias mongod e as instâncias mongos em execução no Windows não exigem acesso aos arquivos keytab. Em vez disso, as instâncias mongod e mongos leem as credenciais de servidor de um repositório de credenciais específico para o sistema operacional.

No entanto, no Diretório Ativo do Windows, você pode exportar um arquivo keytab para uso em sistemas Linux. Veja Ktpass para mais informações.

Para configurar o MongoDB para suporte e autenticação Kerberos, consulte Configurar o MongoDB com autenticação Kerberos no Linux e Configurar o MongoDB com autenticação Kerberos no Windows.

Cada host que executa uma instância do mongod ou mongos deve ter ambos os registros DNS do A e PTR para fornecer pesquisa direta e reversa.

Sem os registros DNS do A e PTR, o host não pode determinar os componentes do domínio Kerberos ou do Centro de Distribuição de Chaves (KDC).

Para a autenticação bem-sucedida, a hora do sistema para cada instância do mongod e mongos deve estar dentro de 5 minutos da hora do sistema dos outros hosts na infraestrutura Kerberos.

Os seguintes drivers MongoDB suportam autenticação Kerberos:

Embora o MongoDB ofereça suporte ao uso da autenticação Kerberos com outros mecanismos de autenticação, adicione os outros mecanismos somente quando necessário. Consulte a seção Incorporate Additional Authentication Mechanisms em Configurar o MongoDB com autenticação Kerberos no Linux e Configurar o MongoDB com autenticação Kerberos no Windows para saber mais detalhes.

O programa mongokerberos fornece um método prático para verificar a configuração Kerberos da sua plataforma para uso com o MongoDB e para testar se a autenticação Kerberos de um cliente MongoDB funciona conforme o esperado. Consulte a documentação do mongokerberos para saber mais informações.

mongokerberos está disponível apenas no MongoDB Enterprise.

Voltar

Autenticação