Menu Docs
Página inicial do Docs
/
Operador de Kubernetes do MongoDB Enterprise
/ /

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 recursodefinir 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 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 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.

  • Para configurar o 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.

Antes de configurar a autenticação LDAP para seus MongoDB deployments, conclua as seguintes tarefas:

1

Altere as configurações desse arquivo YAML para corresponder à configuração desejada do definir .

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: <my-replica-set>
6spec:
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...
2

Abra seu editor de texto preferido e cole o objeto especificação no final do seu arquivo de recurso na spec seção .

3

Para habilitar o LDAP em seu sistema, defina as seguintes configurações em seu objeto Kubernetes:

Chave
Tipo e necessidade
Descrição
Exemplo
boolean,
required
Configure para true para habilitar a autenticação LDAP.
true
string,
required
Especifique o nome diferenciado LDAP ao qual o MongoDB se liga ao conectar ao servidor LDAP.
cn=admin,dc=example,dc=org
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>
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>
string,
optional
Adicione o nome do campo que armazena o CA que valida o certificado TLS do servidor LDAP.
<configmap-key>
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>
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
string,
required

Especifique o mapeamento que mapeia o nome de usuário fornecido para mongod ou mongos para autenticação em um Nome Distinto (DN) LDAP.

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">
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 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.

4

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
6

Invoque o seguinte comando do Kubernetes para atualizar seu conjunto de réplicas:

kubectl apply -f <replica-set-conf>.yaml
7

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.

1

Altere as configurações desse arquivo YAML para corresponder à configuração de cluster fragmentado desejado.

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: <my-sharded-cluster>
6spec:
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...
2

Abra seu editor de texto preferido e cole o objeto especificação no final do seu arquivo de recurso na spec seção .

3

Para habilitar o LDAP em seu sistema, defina as seguintes configurações em seu objeto Kubernetes:

Chave
Tipo e necessidade
Descrição
Exemplo
boolean,
required
Configure para true para habilitar a autenticação LDAP.
true
string,
required
Especifique o nome diferenciado LDAP ao qual o MongoDB se liga ao conectar ao servidor LDAP.
cn=admin,dc=example,dc=org
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>
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>
string,
optional
Adicione o nome do campo que armazena o CA que valida o certificado TLS do servidor LDAP.
<configmap-key>
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>
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
string,
required

Especifique o mapeamento que mapeia o nome de usuário fornecido para mongod ou mongos para autenticação em um Nome Distinto (DN) LDAP.

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">
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 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.

4

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
5
6

Invoque o seguinte comando do Kubernetes para atualizar seu cluster fragmentado:

kubectl apply -f <sharded-cluster-conf>.yaml
7

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.