Partager via


Activer l’authentification LDAP dans Azure Managed Instance 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 (Lightweight Directory Access Protocol) 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. Nous ne la recommandons pas 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, vous allez créer 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 passer à l’avance pour activer l’authentification LDAP.

  1. Déployez une machine virtuelle dans Azure à l’aide d’Ubuntu Server 18.04 Long-Term Support (LTS). Pour obtenir des instructions détaillées, consultez Déployer un serveur Ubuntu.

  2. Donnez à votre serveur un nom DNS (Domain Name System).

    Capture d’écran montrant le nom DNS de la machine virtuelle dans le portail Azure.

  3. Installez Docker sur la machine virtuelle. Pour obtenir un didacticiel, consultez Installer et utiliser Docker sur Ubuntu 18.04.

  4. Dans le répertoire de base, copiez et collez le texte suivant, puis sélectionnez Entrée. Cette commande crée un fichier qui contient 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 suivante. Remplacez <dnsname> par le nom DNS que vous avez créé pour votre serveur LDAP précédemment. Cette commande déploie un serveur LDAP avec TLS (Transport Layer Security) activé sur un conteneur Docker et copie 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 le dossier des certificats à partir 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
    

    Capture d’écran montrant la sortie de la commande pour vérifier le certificat.

  9. Copiez le ldap.crt fichier 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
    

Activez l’authentification LDAP

Important

Si vous avez ignoré la section précédente, car vous disposez déjà d’un serveur LDAP, assurez-vous qu’il dispose des certificats secure Sockets Layer du serveur activés. Le subject alternative name (dns name) certificat spécifié 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 suivante pour ajouter l’extension Azure CLI requise :

    az extension add --upgrade --name cosmosdb-preview
    
  2. Définissez la méthode Ldap d’authentification sur le cluster. Remplacez <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. Remplacez <dnsname> par le nom DNS que vous avez créé pour votre serveur LDAP.

    La commande suivante 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 sur votre lecteur cloud 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 ou n’importe quel pilote client open source Apache Cassandra pour vous connecter à votre centre de données d’instance managée avec l’utilisateur ajouté à l’étape précédente.

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