Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Managed Instance for Apache Cassandra proporciona operaciones de implementación y escalado automatizadas para los centros de datos administrados de código abierto de Apache Cassandra. En este artículo se describe cómo habilitar la autenticación del Protocolo ligero de acceso a directorios (LDAP) en los clústeres y centros de datos.
Importante
La autenticación LDAP está en versión preliminar pública.
Esta característica se proporciona sin un Acuerdo de Nivel de Servicio. No es aconsejable para cargas de trabajo de producción. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.
Requisitos previos
- Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
- Un clúster de Azure Managed Instance for Apache Cassandra. Para más información, consulte Creación de un clúster de Azure Managed Instance para Apache Cassandra desde Azure Portal.
Implementación de un servidor LDAP en Azure
En esta sección, creará un servidor LDAP simple en una máquina virtual de Azure. Si ya tiene un servidor LDAP en ejecución, puede ir directamente a Habilitar la autenticación LDAP.
Implemente una máquina virtual en Azure mediante Ubuntu Server 18.04 Long-Term support (LTS). Para obtener instrucciones detalladas, consulte Implementación de un servidor Ubuntu.
Asigne al servidor un nombre del sistema de nombres de dominio (DNS).
Instale Docker en la máquina virtual. Para ver un tutorial, consulte Instalación y uso de Docker en Ubuntu 18.04.
En el directorio principal, copie y pegue el texto siguiente y seleccione Entrar. Este comando crea un archivo que contiene una cuenta de usuario LDAP de prueba.
mkdir ldap-user && cd ldap-user && cat >> user.ldif <<EOL dn: uid=admin,dc=example,dc=org uid: admin cn: admin sn: 3 objectClass: top objectClass: posixAccount objectClass: inetOrgPerson loginShell: /bin/bash homeDirectory: /home/admin uidNumber: 14583102 gidNumber: 14564100 userPassword: admin mail: admin@example.com gecos: admin EOLVuelva al directorio principal.
cd ..Ejecute el siguiente comando. Reemplace
<dnsname>por el nombre DNS que creó anteriormente para el servidor LDAP. Este comando implementa un servidor LDAP con seguridad de la capa de transporte (TLS) habilitada en un contenedor de Docker y copia el archivo de usuario que creó anteriormente en el contenedor.sudo docker run --hostname <dnsname>.uksouth.cloudapp.azure.com --name <dnsname> -v $(pwd)/ldap-user:/container/service/slapd/assets/test --detach osixia/openldap:1.5.0Copie la carpeta de certificados del contenedor. Reemplace por
<dnsname>el nombre DNS que creó para el servidor LDAP.sudo docker cp <dnsname>:/container/service/slapd/assets/certs certsCompruebe que el nombre DNS es correcto.
openssl x509 -in certs/ldap.crt -textCopie el
ldap.crtarchivo en clouddrive en la CLI de Azure para usarlo más adelante.Agregue el usuario al LDAP. Reemplace por
<dnsname>el nombre DNS que creó para el servidor LDAP.sudo docker container exec <dnsname> ldapadd -H ldap://<dnsname>.uksouth.cloudapp.azure.com -D "cn=admin,dc=example,dc=org" -w admin -f /container/service/slapd/assets/test/user.ldif
Habilitación de la autenticación LDAP
Importante
Si ha omitido la sección anterior porque ya tiene un servidor LDAP, asegúrese de que tiene habilitados los certificados de capa de sockets seguros del servidor. El subject alternative name (dns name) especificado para el certificado también debe coincidir con el dominio del servidor en el que se hospeda LDAP o se produce un error en la autenticación.
Actualmente, la autenticación LDAP es una característica en versión preliminar pública. Ejecute el comando siguiente para agregar la extensión de la CLI de Azure necesaria:
az extension add --upgrade --name cosmosdb-previewEstablezca el método de autenticación
Ldapen el clúster. Reemplace<resource group>y<cluster name>por los valores adecuados.az managed-cassandra cluster update -g <resource group> -c <cluster name> --authentication-method "Ldap"Ahora, establezca las propiedades en el nivel del centro de datos. Reemplace
<resource group>y<cluster name>por los valores adecuados. Reemplace por<dnsname>el nombre DNS que creó para el servidor LDAP.El siguiente comando se basa en la configuración ldap de la sección anterior. Si ha omitido esa sección porque ya tiene un servidor LDAP existente, proporcione los valores correspondientes para ese servidor en su lugar. Asegúrese de cargar un archivo de certificado como
ldap.crten la unidad en la nube en la CLI de Azure.ldap_search_base_distinguished_name='dc=example,dc=org' ldap_server_certificates='/usr/csuser/clouddrive/ldap.crt' ldap_server_hostname='<dnsname>.uksouth.cloudapp.azure.com' ldap_service_user_distinguished_name='cn=admin,dc=example,dc=org' ldap_service_user_password='admin' az managed-cassandra datacenter update -g `<resource group>` -c `<cluster name>` -d datacenter-1 \ --ldap-search-base-dn $ldap_search_base_distinguished_name \ --ldap-server-certs $ldap_server_certificates \ --ldap-server-hostname $ldap_server_hostname \ --ldap-service-user-dn $ldap_service_user_distinguished_name \ --ldap-svc-user-pwd $ldap_service_user_passwordUna vez finalizado este comando, debería poder usar CQLSH o cualquier controlador de cliente de código abierto de Apache Cassandra para conectarse al centro de datos de la instancia administrada con el usuario agregado en el paso anterior.
export SSL_VALIDATE=false cqlsh --debug --ssl <data-node-ip> -u <user> -p <password>