Compartir a través de


Habilitación de la autenticación LDAP en Azure Managed Instance para 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 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

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.

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

  2. Asigne al servidor un nombre del sistema de nombres de dominio (DNS).

    Captura de pantalla que muestra el nombre DNS de la máquina virtual en Azure Portal.

  3. Instale Docker en la máquina virtual. Para ver un tutorial, consulte Instalación y uso de Docker en Ubuntu 18.04.

  4. 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
    EOL 
    
  5. Vuelva al directorio principal.

    cd ..
    
  6. 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.0
    
  7. Copie 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 certs
    
  8. Compruebe que el nombre DNS es correcto.

    openssl x509 -in certs/ldap.crt -text
    

    Captura de pantalla que muestra la salida del comando para comprobar el certificado.

  9. Copie el ldap.crt archivo en clouddrive en la CLI de Azure para usarlo más adelante.

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

  1. 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
    
  2. Establezca el método de autenticación Ldap en 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"
    
  3. 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.crt en 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_password
    
  4. Una 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>