Procedimiento para habilitar la autenticación LDAP en Azure Managed Instance for Apache Cassandra
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 LDAP en clústeres y centros de datos.
Importante
La autenticación LDAP está en versión preliminar pública. Esta característica se ofrece sin contrato de nivel de servicio y no se recomienda 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. Revise cómo crear un clúster de Azure Managed Instance for Apache Cassandra desde Azure Portal.
Implementación de un servidor LDAP en Azure
En esta sección, se describirá cómo crear un servidor LDAP simple en una máquina virtual en Azure. Si ya tiene un servidor LDAP en ejecución, puede omitir esta sección y revisar cómo habilitar la autenticación LDAP.
Implemente una máquina virtual en Azure mediante Ubuntu Server 18.04 LTS. Puede seguir estas instrucciones.
Asigne un nombre DNS al servidor:
Instale Docker en la máquina virtual. Se recomienda este tutorial.
En el directorio principal, copie y pegue el texto siguiente y presione Entrar. Este comando creará 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 EOL
Vuelva a navegar hasta el directorio principal.
cd ..
Ejecute el comando siguiente y reemplace
<dnsname>
por el nombre DNS que ha creado antes para el servidor LDAP. Este comando implementará un servidor LDAP con TLS habilitado en un contenedor de Docker y también copiará el archivo de usuario que ha creado antes 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.0
Ahora copie la carpeta de certificados del contenedor (reemplace
<dnsname>
por el nombre DNS que ha creado para el servidor LDAP):sudo docker cp <dnsname>:/container/service/slapd/assets/certs certs
Compruebe que el nombre DNS sea correcto:
openssl x509 -in certs/ldap.crt -text
Copie el archivo
ldap.crt
en clouddrive en la CLI de Azure para usarlo más adelante.Agregue el usuario a LDAP (reemplace
<dnsname>
por el nombre DNS que ha creado 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 existente, asegúrese de que tiene habilitados los certificados SSL de servidor. El valor 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 producirá 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-preview
Establezca el método de autenticación en "Ldap" en el clúster y 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 y<dnsname>
por el nombre DNS que ha creado para el servidor LDAP.Nota:
El comando siguiente se basa en la configuración de 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 que ha cargado un archivo de certificado como
ldap.crt
en clouddrive 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_password
Una vez que se complete este comando, debe poder usar CQLSH (vea más abajo) o cualquier controlador 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>