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

Configure o MongoDB autogerenciado com autenticação Kerberos no Windows

Nesta página

  • Visão geral
  • Pré-requisitos
  • Procedimentos
  • Considerações adicionais
  • Teste e verificação

O MongoDB Enterprise oferece suporte à autenticação usando um serviço Kerberos. 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 oferece suporte apenas à implementação do MIT de Kerberos.

A instalação e a configuração de um sistema do Kerberos estão além do escopo deste documento. Este tutorial pressupõe a configuração de uma entidade de serviço Kerberos para cada instância mongod.exe e mongos.exe .

Para conjuntos de réplicas e clusters fragmentados, verifique se sua configuração usa nomes de domínio totalmente qualificados (FQDN) em vez de endereços IP ou nomes de host não qualificados. Você deve usar o FQDN para GSSAPI para resolver corretamente os domínios Kerberos e permitir que você se conecte.

1

Para a adição inicial de usuários Kerberos, inicie o mongod.exe sem suporte Kerberos.

Se um usuário Kerberos já estiver no MongoDB e tiver os privilégios exigidos para criar um usuário, você poderá iniciar o mongod.exe com suporte Kerberos.

Inclua configurações adicionais conforme apropriado para seu sistema.

Observação

mongod e mongos se vinculam ao localhost por padrão. Se os membros do sistema forem executados em hosts diferentes, ou se você desejar que os clientes remotos se conectem ao sistema, especifique --bind_ip ou net.bindIp.

2

Conecte mongosh à instância mongod.exe. Se mongod.exe tiver --auth ativado, verifique se você se conecta com os privilégios necessários para criar um usuário.

3

Adicione um Kerberos principal, <username>@<KERBEROS REALM>, ao MongoDB no banco de dados $external. Especifique o Kerberos realm em ALL UpperCase. O banco de dados $external permite que mongod.exe consulte uma fonte externa (por exemplo, o Kerberos) para fazer a autenticação. Para especificar os privilégios do usuário, atribua funções ao 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.

O seguinte exemplo adiciona o principal reportingapp@EXAMPLE.NET Kerberos com acesso somente leitura ao banco de dados records:

use $external
db.createUser(
{
user: "reportingapp@EXAMPLE.NET",
roles: [ { role: "read", db: "records" } ]
}
)

Adicione entidades adicionais conforme necessário. Para cada usuário que você deseja autenticar usando Kerberos, você deve criar um usuário correspondente no MongoDB. Para obter mais informações sobre como criar e gerenciar usuários, consulte Comandos de gerenciamento de usuários.

4

Você deve iniciar mongod.exe como a conta principal de serviço.

Para iniciar o mongod.exe com compatibilidade com o Kerberos, defina o parâmetro mongod.exe authenticationMechanisms como GSSAPI:

mongod.exe --setParameter authenticationMechanisms=GSSAPI <additional mongod.exe options>

Inclua opções adicionais, conforme necessário, para sua configuração. Por exemplo, se você deseja que clientes remotos se conectem à sua implantação ou se os membros da implantação forem executados em hosts diferentes, especifique o --bind_ip.

Por exemplo, o seguinte inicia uma instância do mongod.exe independente com suporte Kerberos:

mongod.exe --auth --setParameter authenticationMechanisms=GSSAPI --bind_ip localhost,<hostname(s)|ip address(es)>
5

Conecte o cliente de shell mongo.exe como a entidade de segurança Kerberos application@EXAMPLE.NET.

Você pode conectar e autenticar a partir da linha de comando.

Usando cmd.exe:

mongo.exe --host hostname.example.net --authenticationMechanism=GSSAPI --authenticationDatabase=$external --username reportingapp@EXAMPLE.NET

Usando Windows PowerShell:

mongo.exe --host hostname.example.net --authenticationMechanism=GSSAPI --authenticationDatabase='$external' --username reportingapp@EXAMPLE.NET

Se você estiver conectando a um sistema cujo nome de host corresponda ao nome Kerberos, especifique o nome de domínio totalmente qualificado (FQDN) para a opção --host, em vez de um endereço IP ou nome de host não qualificado.

Se você estiver se conectando a um sistema cujo nome de host não corresponda ao nome Kerberos, primeiro conecte mongo.exe ao mongod.exe e, em seguida, a partir do shell mongo.exe, use o método db.auth() para autenticar no banco de dados $external.

use $external
db.auth( { mechanism: "GSSAPI", user: "reportingapp@EXAMPLE.NET" } )

Para iniciar o mongos.exe com compatibilidade com o Kerberos, defina o parâmetro mongos.exe authenticationMechanisms como GSSAPI. Você deve iniciar mongos.exe como a conta principal do serviço:

mongos.exe --setParameter authenticationMechanisms=GSSAPI <additional mongos options>

Inclua opções adicionais, conforme necessário, para sua configuração. Por exemplo, se você deseja que clientes remotos se conectem à sua implantação ou se os membros da implantação forem executados em hosts diferentes, especifique o --bind_ip.

Por exemplo, o seguinte inicia uma instância do mongos com suporte Kerberos:

mongos.exe --setParameter authenticationMechanisms=GSSAPI --configdb shard0.example.net, shard1.example.net,shard2.example.net --keyFile C:\<path>\mongos.keyfile --bind_ip localhost,<hostname(s)|ip address(es)>

Modifique ou inclua quaisquer opções adicionais do mongos.exe conforme exigido para sua configuração. Por exemplo, em vez de usar --keyFile para autenticação interna de membros fragmentados do cluster, você pode usar a autenticação de membros x.509.

Utilize setspn.exe para atribuir o nome principal de serviço (SPN) à conta que executa o mongod.exe e o serviço do mongos.exe:

setspn.exe -S <service>/<fully qualified domain name> <service account name>

Exemplo

Se mongod.exe for executado como um serviço chamado mongodb no testserver.mongodb.com com o nome da conta de serviço mongodtest, atribua o SPN da seguinte maneira:

setspn.exe -S mongodb/testserver.mongodb.com mongodtest

A autenticação Kerberos (GSSAPI (Kerberos)) pode funcionar ao lado de:

  • Mecanismo de autenticação SCRAM do MongoDB:

  • Mecanismo de autenticação do MongoDB para LDAP:

  • Mecanismo de autenticação do MongoDB para x.509:

Especifique os mecanismos da seguinte maneira:

--setParameter authenticationMechanisms=GSSAPI,SCRAM-SHA-256

Adicione apenas os outros mecanismos se estiver em uso. Esta configuração de parâmetro não afeta a autenticação interna do MongoDB dos membros do cluster.

Após completar as etapas de configuração, você pode validar sua configuração com a ferramenta mongokerberos.

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 esperado. Consulte a documentação do mongokerberos para saber mais informações.

mongokerberos está disponível apenas no MongoDB Enterprise.

Voltar

Configurar no Linux

Próximo

Solução de problemas