Autenticação segura do cliente com LDAP
Nesta página
- Considerações
- Pré-requisitos gerais
- Configurar autenticação de cliente LDAP para um conjunto de réplicas
- Copie o recurso definir de exemplo.
- Cole a seção de exemplo copiada no recurso de conjunto de réplicas existente.
- Configure as configurações LDAP para seu recurso de conjunto de réplica .
- Configure as configurações LDAP para o MongoDB Agent.
- Salve o arquivo de configuração do conjunto de réplicas .
- Aplique suas alterações à implantação do conjunto de réplicas .
- Monitore o status da sua implementação.
- Configurar Autenticação de Cliente LDAP para um Cluster Fragmentado
- Copie o recurso agrupamento compartilhado da amostra.
- Cole a seção de exemplo copiada no recurso do cluster fragmentado existente.
- Configure as configurações LDAP para seu recurso de agrupamento compartilhado .
- Configure as configurações LDAP para o MongoDB Agent.
- Salve seu arquivo de configuração do cluster fragmentado .
- Aplique suas alterações à sua implantação de cluster fragmentado .
- Monitore o status da sua implementação.
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 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 Kubernetes Operator para configurar o LDAP para autenticar seus aplicativos clientes que se conectam aos seus MongoDB deployments. Este guia descreve como configurar a autenticação LDAP de aplicativos clientes para suas implementações do MongoDB.
Observação
Você não pode proteger uma instância standalone do MongoDB em um cluster Kubernetes.
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 conjunto de réplicas criptografadas por TLS ou um cluster fragmentado 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 gerais
Antes de configurar a autenticação LDAP para seus MongoDB deployments, conclua as seguintes tarefas:
Certifique-se de distribuir o recurso de reconhecimento de data center MongoDB Enterprise. Os bancos de dados MongoDB Community não oferecem suporte à autenticação LDAP.
Implemente o conjunto de réplicas ou implemente o cluster fragmentado cuja autenticação de cliente você deseja proteger com LDAP .
Configurar autenticação de cliente LDAP para um conjunto de réplicas
Copie o recurso definir de exemplo.
Altere as configurações desse arquivo YAML para corresponder à configuração desejada do definir .
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDB 4 metadata: 5 name: <my-replica-set> 6 spec: 7 members: 3 8 version: "4.2.2-ent" 9 opsManager: 10 configMapRef: 11 # Must match metadata.name in ConfigMap file 12 name: <configMap.metadata.name> 13 credentials: <mycredentials> 14 type: ReplicaSet 15 persistent: true
16 security: 17 tls: 18 ca: <custom-ca> 19 certsSecretPrefix: <prefix> 20 ...
Cole a seção de exemplo copiada no recurso de conjunto de réplicas existente.
Abra seu editor de texto preferido e cole o objeto especificação no final do seu arquivo de recurso na spec
seção .
Configure as configurações LDAP para seu recurso de conjunto de réplica .
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 |
|
spec.security | string, required | Especifique o nome diferenciado LDAP ao qual o MongoDB se liga ao conectar ao servidor LDAP. |
|
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. |
|
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. |
|
spec.security | string, optional | Adicione o nome do campo que armazena o CA que valida o certificado TLS do servidor LDAP. |
|
spec.security | array of strings, required | Specify the list of |
|
spec.security | string, optional | Configure para |
|
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 . |
|
spec.security | string, required | Configure para |
|
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 database 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 MongoDB do Kubernetes Operator. Consulte também a configuração spec.security.authentication.agents.automationUserName
para o MongoDB Agent user em seu Kubernetes Operator habilitado para LDAP.
Configure as configurações LDAP para o MongoDB Agent.
Atualize o recurso do MongoDB com configurações de segurança específicas para o agente, a partir da especificação de recursos do MongoDB do Kubernetes Operator. A configuração resultante pode ser semelhante ao exemplo a seguir:
security: authentication: agents: automationPasswordSecretRef: key: automationConfigPassword name: automation-config-password automationUserName: mms-automation-agent clientCertificateSecretRef: name: agent-client-cert mode: LDAP enabled: true ldap: bindQueryPasswordSecretRef: name: bind-query-password bindQueryUser: cn=admin,dc=example,dc=org servers: - openldap.namespace.svc.cluster.local:389 userToDNMapping: '[{match: "(.+)",substitution: "uid={0},ou=groups,dc=example,dc=org"}]' modes: - LDAP - SCRAM requireClientTLSAuthentication: false
Salve o arquivo de configuração do conjunto de réplicas .
Aplique suas alterações à implantação do conjuntode réplicas .
Invoque o seguinte comando do Kubernetes para atualizar seu conjunto de réplicas:
kubectl apply -f <replica-set-conf>.yaml
Monitore o status da sua implementação.
Para verificar o status do seu recurso MongoDB
, utilize o seguinte comando:
kubectl get mdb <resource-name> -o yaml -w
Com o sinalizador -w
(inspeção) definido, quando a configuração muda, o resultado é atualizado imediatamente até que a fase de status atinja o estado Running
. Para saber mais sobre os status de distribuição de recursos, consulte Solucionar problemas do operador Kubernetes.
Configurar Autenticação de Cliente LDAP para um Cluster Fragmentado
Copie o recurso cluster fragmentado da amostra.
Altere as configurações desse arquivo YAML para corresponder à configuração de cluster fragmentado desejado.
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDB 4 metadata: 5 name: <my-sharded-cluster> 6 spec: 7 shardCount: 2 8 mongodsPerShardCount: 3 9 mongosCount: 2 10 configServerCount: 3 11 version: "4.2.2-ent" 12 opsManager: 13 configMapRef: 14 name: <configMap.metadata.name> 15 # Must match metadata.name in ConfigMap file 16 credentials: <mycredentials> 17 type: ShardedCluster 18 persistent: true
19 security: 20 tls: 21 ca: <custom-ca> 22 certsSecretPrefix: <prefix> 23 ...
Cole a seção de exemplo copiada no recurso do clusterfragmentado existente.
Abra seu editor de texto preferido e cole o objeto especificação no final do seu arquivo de recurso na spec
seção .
Configure as configurações LDAP para seu cluster fragmentado .
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 |
|
spec.security | string, required | Especifique o nome diferenciado LDAP ao qual o MongoDB se liga ao conectar ao servidor LDAP. |
|
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. |
|
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. |
|
spec.security | string, optional | Adicione o nome do campo que armazena o CA que valida o certificado TLS do servidor LDAP. |
|
spec.security | array of strings, required | Specify the list of |
|
spec.security | string, optional | Configure para |
|
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 . |
|
spec.security | string, required | Configure para |
|
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 database 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 MongoDB do Kubernetes Operator. Consulte também a configuração spec.security.authentication.agents.automationUserName
para o MongoDB Agent user em seu Kubernetes Operator habilitado para LDAP.
Configure as configurações LDAP para o MongoDB Agent.
Atualize o recurso do MongoDB com configurações de segurança específicas para o agente, a partir da especificação de recursos do MongoDB do Kubernetes Operator. A configuração resultante pode ser semelhante ao exemplo a seguir:
security: authentication: agents: automationPasswordSecretRef: key: automationConfigPassword name: automation-config-password automationUserName: mms-automation-agent clientCertificateSecretRef: name: agent-client-cert mode: LDAP enabled: true ldap: bindQueryPasswordSecretRef: name: bind-query-password bindQueryUser: cn=admin,dc=example,dc=org servers: - openldap.namespace.svc.cluster.local:389 userToDNMapping: '[{match: "(.+)",substitution: "uid={0},ou=groups,dc=example,dc=org"}]' modes: - LDAP - SCRAM requireClientTLSAuthentication: false
Salve seu arquivo de configuração do cluster fragmentado .
Aplique suas alterações à sua implantação de cluster fragmentado .
Invoque o seguinte comando do Kubernetes para atualizar seu cluster fragmentado:
kubectl apply -f <sharded-cluster-conf>.yaml
Monitore o status da sua implementação.
Para verificar o status do seu recurso MongoDB
, utilize o seguinte comando:
kubectl get mdb <resource-name> -o yaml -w
Com o sinalizador -w
(inspeção) definido, quando a configuração muda, o resultado é atualizado imediatamente até que a fase de status atinja o estado Running
. Para saber mais sobre os status de distribuição de recursos, consulte Solucionar problemas do operador Kubernetes.