Autenticação LDAP na Pesquisa com OpenSearch
Saiba como usar um provedor LDAP com o OCI Search com o OpenSearch.
Você pode usar um provedor de identidades Lightweight Directory Access Protocol (LDAP) para autenticar e autorizar usuários a controlar o acesso a clusters OpenSearch e Painéis de Controle OpenSearch. A pesquisa com OpenSearch suporta LDAP v1 e LDAP v2.
Pré-requisitos
- Um provedor LDAP.
- Um cluster OpenSearch existente. Se o cluster tiver sido criado usando a CLI ou a API, você também deverá ativar o controle de acesso baseado em atribuição para o cluster, com o modo de segurança definido para impor.
- A sub-rede na qual o cluster está localizado é configurada com uma regra de saída para permitir o tráfego de rede para a sub-rede na qual o servidor LDAP está localizado.
- A senha do plug-in de Segurança armazenado como segredo do Vault. Para obter mais informações, consulte Gerenciando Vaults e Gerenciando Segredos. Configure uma política para permitir que o cluster OpenSearch acesse o segredo do Vault no qual a senha está armazenada, conforme mostrado no seguinte exemplo de política:
ALLOW ANY-USER TO use secret-family IN TENANCY WHERE ALL {request.principal.type='opensearchcluster', request.resource.compartment.id = '<customer_cluster_compartment_id>', target.secret.id = '<target-secret-ocid>'}
Obtendo o Endereço IP Nat do Servidor LDAP
Para configurar o provedor LDAP para o cluster, você precisa do endereço IP Nat para o cluster usar para se conectar ao servidor LDAP. Para obter esse endereço, você precisa adicionar um ponto final externo ao cluster. Você especifica o endereço IP do servidor LDAP quando adiciona essa conexão e Pesquisar com OpenSearch retorna o IP Nat.
- Na página de lista Clusters, localize o cluster OpenSearch com o qual você deseja trabalhar. Se precisar de ajuda para localizar a página de lista ou o cluster, consulte Listando a Pesquisa com Clusters OpenSearch.
- Na lista Clusters, clique no nome do cluster para o qual deseja configurar o LDAP.
- Na página de detalhes do cluster, clique em Mais ações e selecione Adicionar pontos finais externos.
- Informe o endereço IP do servidor LDAP e clique em Submeter.
- Na seção Recursos, clique em Pontos finais externos.
- Copie o valor na coluna IP NAT do ponto final externo que você adicionou. Este é o endereço especificado no atributo de hosts da configuração do provedor LDAP para o cluster.
Configurar Provedor LDAP
Use a API de Configuração do plug-in de Segurança do OpenSearch para configurar o provedor LDAP. Consulte Definições de conexão para obter o formato de configuração LDAP.
Especifique o endereço IP Nat copiado na seção anterior para o atributo hosts na configuração.
O seguinte exemplo atualiza a configuração para suportar LDAP:
PUT {<cluster_endpoint>}/_plugins/_security/api/securityconfig/config
{
"dynamic": {
"security_mode": "ENFORCING",
"http": {
"anonymous_auth_enabled": false,
"xff": {
"enabled": false
}
},
"authc": {
"basic_internal_auth_domain": {
"description": "Authenticate via HTTP Basic against internal users database",
"http_enabled": true,
"transport_enabled": true,
"order": 1,
"http_authenticator": {
"type": "basic",
"challenge": true
},
"authentication_backend": {
"type": "intern"
}
},
"openid_auth_domain": {
"description": "Authenticate using OpenId connect",
"http_enabled": true,
"transport_enabled": true,
"order": 0,
"http_authenticator": {
"type": "openid",
"challenge": false,
"config": {
"subject_key": "sub",
"roles_key": "userAppRoles",
"openid_connect_url": "<openid_url>"
}
},
"authentication_backend": {
"type": "noop"
}
},
"ldap_auth_domain": {
"order": 1,
"description": "LDAP provider",
"http_enabled": true,
"transport_enabled": true,
"http_authenticator": {
"type": "basic",
"challenge": true
},
"authentication_backend": {
"type": "ldap",
"config": {
"hosts": ["<NAT_IPs>:389"],
"bind_dn": "cn=admin,dc=example,dc=org",
"passwordSercetLocation": {
secreteOcid: "ocid1.secret.oc1.iad.<unique_ID>",
secretVersion: <secret_version>
},
"usersearch": "(uid={0})",
"userbase": "ou=people,dc=example,dc=org",
"username_attribute": "uid",
"rolebase": "ou=groups,dc=example,dc=org",
"rolesearch": "(memberUid={1})",
"rolename": "cn"
}
}
}
},
"authz": {
"ldap": {
"http_enabled": true,
"transport_enabled": true,
"authorization_backend": {
"type": "ldap",
"config": {
"hosts": ["<NAT_IPs>:389"],
"bind_dn": "cn=admin,dc=example,dc=org",
"passwordSercetLocation": {
secreteOcid: "ocid1.secret.oc1.iad.<unique_ID>",
secretVersion: <secret_version>
},
"usersearch": "(uid={0})",
"userbase": "ou=people,dc=example,dc=org",
"username_attribute": "uid",
"rolebase": "ou=groups,dc=example,dc=org",
"rolesearch": "(memberUid={1})",
"rolename": "cn"
}
}
}
}
}
}