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
- Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
- Cluster de l’instance gérée Azure pour Apache Cassandra Apprenez à créer une instance gérée Azure pour le cluster Apache Cassandra à partir du portail Azure.
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.
Déployez une machine virtuelle dans Azure à l’aide d’Ubuntu Server 18.04 LTS. Vous pouvez suivre les instructions fournies ici.
Donnez un nom DNS à votre serveur :
Installez Docker sur la machine virtuelle. Nous vous recommandons ce tutoriel.
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
Revenez au répertoire de base.
cd ..
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
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
Vérifiez que le nom dns est correct.
openssl x509 -in certs/ldap.crt -text
Copiez le fichier
ldap.crt
dans CloudDrive dans Azure CLI pour une utilisation ultérieure.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.
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
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"
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
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>