Comment activer l’authentification LDAP dans l’instance gérée Azure pour Apache Cassandra

Azure Managed Instance pour Apache Cassandra offre des opérations de déploiement et de mise à l’échelle automatisées pour les centres de données Apache Cassandra open source managés. Cet article explique comment activer l’authentification LDAP sur vos clusters et centres de données.

Important

L’authentification LDAP est en préversion publique. Cette fonctionnalité est fournie sans contrat de niveau de service et est déconseillée pour les charges de travail de production. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.

Prérequis

Déployer un serveur LDAP dans Azure

Dans cette section, nous allons vous guider dans la création d’un serveur LDAP simple sur une machine virtuelle dans Azure. Si vous disposez déjà d’un serveur LDAP en cours d’exécution, vous pouvez ignorer cette section et examiner comment activer l’authentification LDAP.

  1. Déployez une machine virtuelle dans Azure à l’aide d’Ubuntu Server 18.04 LTS. Vous pouvez suivre les instructions fournies ici.

  2. Donnez un nom DNS à votre serveur :

    Screenshot of virtual machine d n s name in Azure portal.

  3. Installez Docker sur la machine virtuelle. Nous vous recommandons ce tutoriel.

  4. Dans le répertoire de base, copiez et collez le texte suivant, puis appuyez sur Entrée. Cette commande crée un fichier contenant un compte d’utilisateur LDAP de test.

    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. Revenez au répertoire de base.

    cd ..
    
  6. Exécutez la commande ci-dessous, en remplaçant <dnsname> par le nom dns que vous avez précédemment créé pour votre serveur LDAP. Cette commande déploie un serveur LDAP avec TLS activé sur un conteneur Docker et copie également le fichier utilisateur que vous avez créé précédemment dans le conteneur.

    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. Copiez maintenant le dossier certificats du conteneur (remplacez <dnsname> par le nom dns que vous avez créé pour votre serveur LDAP) :

    sudo docker cp <dnsname>:/container/service/slapd/assets/certs certs
    
  8. Vérifiez que le nom dns est correct.

    openssl x509 -in certs/ldap.crt -text
    

    Screenshot of output from command to verify certificate.

  9. Copiez le fichier ldap.crt dans CloudDrive dans Azure CLI pour une utilisation ultérieure.

  10. Ajoutez l’utilisateur au protocole ldap (remplacez <dnsname> par le nom dns que vous avez créé pour votre serveur 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
    

Activer l’authentification LDAP

Important

Si vous avez ignoré la section ci-dessus, car vous disposez déjà d’un serveur LDAP existant, vérifiez qu’il dispose de certificats SSL de serveur activés. Le subject alternative name (dns name) spécifié pour le certificat doit également correspondre au domaine du serveur sur lequel LDAP est hébergé, ou l’authentification échoue.

  1. Actuellement, l’authentification LDAP est une fonctionnalité en préversion publique. Exécutez la commande ci-dessous pour ajouter l’extension Azure CLI requise :

    az extension add --upgrade --name cosmosdb-preview
    
  2. Définissez la méthode d’authentification sur « Ldap » sur le cluster, en remplaçant <resource group> et <cluster name> par les valeurs appropriées :

    az managed-cassandra cluster update -g <resource group> -c <cluster name> --authentication-method "Ldap"
    
  3. Définissez maintenant les propriétés au niveau du centre de données. Remplacez <resource group> et <cluster name> par les valeurs appropriées, et <dnsname> par le nom dns que vous avez créé pour votre serveur LDAP.

    Remarque

    La commande ci-dessous est basée sur la configuration LDAP dans la section précédente. Si vous avez ignoré cette section, car vous disposez déjà d’un serveur LDAP existant, fournissez plutôt les valeurs correspondantes pour ce serveur. Vérifiez que vous avez chargé un fichier de certificat comme ldap.crt dans votre clouddrive dans Azure CLI.

    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. Une fois cette commande terminée, vous devez être en mesure d’utiliser CQLSH (voir ci-dessous) ou tout pilote client open source Apache Cassandra pour vous connecter à votre centre de données d’instance managée avec l’utilisateur ajouté à l’étape ci-dessus :

    export SSL_VALIDATE=false
    cqlsh --debug --ssl <data-node-ip> -u <user> -p <password>
    

Étapes suivantes