Autenticação segura do cliente com LDAP
Nesta página
O MongoDB Enterprise oferece suporte a:
Proxy de solicitações de autenticação para um serviço LDAP (Lightweight Directory Access Protocol).
Vinculação simples e SASL a servidores LDAP. O MongoDB Enterprise pode se vincular a um servidor LDAP via
saslauthd
ou por meio das bibliotecas do sistema operacional.
Para saber mais, consulte as seções Autenticação deLDAP LDAP na documentação do MongoDB Server .
Você pode usar o Operador Kubernetes para configurar o LDAP para autenticar seus aplicativos clientes que se conectam aos sistemas MongoDB de vários clusters Kubernetes. Este guia descreve como configurar a autenticação LDAP de aplicativos cliente para suas implantações do MongoDB de clusters multikubernetes.
Considerações
Para configurar LDAP em CustomResourceDefinitions, use os parâmetros nas
spec.security.authentication.ldap
e outras configurações LDAP de segurança específicas para o MongoDB Agent, da especificação de recursos do MongoDB do Kubernetes Operator. Os procedimentos nesta seção descrevem as configurações necessárias e fornecem exemplos de configuração LDAP .Para melhorar a segurança, considere implantar um multicluster criptografado por TLS. A criptografia com TLS é opcional. Por padrão, o tráfego LDAP é enviado como texto simples. Isso significa que o nome de usuário e a senha estão expostos a riscos de rede. Muitos serviços de diretório modernos, como o Microsoft Active Directory, exigem conexões criptografadas. Considere usar LDAP sobre TLS/SSL para criptografar solicitações de autenticação em seus sistemas do Kubernetes Operator MongoDB.
Pré-requisitos
Antes de proteger seu sistema MongoDB de cluster multi-Kubernetes usando criptografia TLS , conclua as seguintes tarefas:
Siga as etapas dos pré- requisitos de início rápido.
Implemente um multi-cluster usando um Quick Start de Multi-Kubernetes-Cluster.
Configurar Autenticação de Cliente LDAP para um Conjunto de Réplicas de Multi-Kubernetes-Cluster
Atualize seu MongoDBMultiCluster
recurso do para habilitar a autenticação LDAP .
Atualize seu recurso personalizado do MongoDBMultiCluster com as configurações de segurança da especificação de recursos do MongoDBMultiCluster do Kubernetes Operator.
Para habilitar o LDAP em seu sistema, defina as seguintes configurações em seu objeto Kubernetes:
Chave | Tipo e necessidade | Descrição | Exemplo |
---|---|---|---|
spec.security | boolean, required | Configure para true para habilitar a autenticação LDAP. | true |
spec.security | string, required | Especifique o nome diferenciado LDAP ao qual o MongoDB se liga ao conectar ao servidor LDAP. | cn=admin,dc=example,dc=org |
spec.security | string, required | Especifique o nome do segredo que contém a senha do LDAP Bind Distinguished Name com a qual o MongoDB se liga ao conectar a um servidor LDAP. | <secret-name> |
spec.security | string, optional | Adicione o nome do ConfigMap que armazena a CA personalizada que você usou para assinar os certificados TLS da sua implantação. | <configmap-name> |
spec.security | string, optional | Adicione o nome do campo que armazena o CA que valida o certificado TLS do servidor LDAP. | <configmap-key> |
spec.security | array of strings, required | Specify the list of hostname:port combinations of one or more LDAP servers. Para cada servidor, use uma linha separada. | <example.com:636> |
spec.security | string, optional | Configure para tls para utilizar LDAPS (LDAP sobre TLS). Leave blank if your LDAP server doesn't accept TLS. Você deve habilitar o TLS ao implantar o recurso do reconhecimento de data center para usar essa configuração. | tls |
spec.security | string, required | Especifique o mapeamento que mapeia o nome de usuário fornecido para Para saber mais, consulte security.ldap.userToDNMapping e modelos de queryLDAP na documentação do MongoDB Server . | <match: "(.+)",substitution: "uid={0},ou=groups,dc=example,dc=org"> |
spec.security | string, required | Configure para LDAP para habilitar a autenticação por LDAP. | LDAP |
A configuração resultante pode ser semelhante ao exemplo a seguir:
security: authentication: enabled: true # Enabled LDAP Authentication Mode modes: - "LDAP" - "SCRAM" # LDAP related configuration ldap: # Specify the hostname:port combination of one or # more LDAP servers servers: - "ldap1.example.com:636" - "ldap2.example.com:636" # Set to "tls" to use LDAP over TLS. Leave blank if # the LDAP server doesn't accept TLS. You must enable TLS when # you deploy the multi-cluster resource to use this setting. transportSecurity: "tls" # If TLS is enabled, add a reference to a ConfigMap that # contains a CA certificate that validates the LDAP server's # TLS certificate. caConfigMapRef: name: "<configmap-name>" key: "<configmap-entry-key>" # Specify the LDAP Distinguished Name to which # MongoDB binds when connecting to the LDAP server bindQueryUser: "cn=admin,dc=example,dc=org" # Specify the password with which MongoDB binds # when connecting to an LDAP server. This is a # reference to a Secret Kubernetes Object containing # one "password" key. bindQueryPasswordSecretRef: name: "<secret-name>"
Para obter uma lista completa das configurações LDAP, consulte as configurações de segurança na especificação de recursos do MongoDBMultiCluster do Kubernetes Operator. Consulte também a configuração spec.security.authentication.agents.automationUserName
para o MongoDB Agent em seu sistema do Kubernetes Operator habilitado para LDAP.
Verifique se os MongoDBMultiCluster
recursos do estão em execução.
Para clusters de membros, execute os seguintes comandos para verificar se os MongoDB Pods estão no estado de execução:
kubectl get pods \ --context=$MDB_CLUSTER_1_FULL_NAME \ --namespace mongodb kubectl get pods \ --context=$MDB_CLUSTER_2_FULL_NAME \ --namespace mongodb kubectl get pods \ --context=$MDB_CLUSTER_3_FULL_NAME \ --namespace mongodb No cluster central, execute o seguinte comando para verificar se o recurso
MongoDBMultiCluster
está no estado de execução:kubectl --context=$MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace mongodb \ get mdbmc multi-replica-set -o yaml -w