Joindre une machine virtuelle Ubuntu Linux à un domaine managé Microsoft Entra Domain Services
Pour permettre aux utilisateurs de se connecter à des machines virtuelles dans Azure à l’aide d’un seul ensemble d’informations d’identification, vous pouvez joindre des machines virtuelles à un domaine managé Microsoft Entra Domain Services. Lorsque vous joignez une machine virtuelle à un domaine managé Des services de domaine, les comptes d’utilisateur et les informations d’identification du domaine peuvent être utilisés pour se connecter et gérer des serveurs. Les appartenances de groupe à partir du domaine managé sont également appliquées pour vous permettre de contrôler l’accès aux fichiers ou services sur la machine virtuelle.
Cet article vous montre comment joindre une machine virtuelle Linux Ubuntu à un domaine managé.
Conditions préalables
Pour suivre ce tutoriel, vous avez besoin des ressources et des privilèges suivants :
- Un abonnement Azure actif.
- Si vous n’avez pas d’abonnement Azure, créez un compte.
- Une instance Microsoft Entra associée à votre abonnement, synchronisée avec un annuaire local ou un annuaire uniquement dans le cloud.
- Si nécessaire, créez un locataire Microsoft Entra ou associez un abonnement Azure à votre compte.
- Un domaine managé Microsoft Entra Domain Services activé et configuré dans votre locataire Microsoft Entra.
- Si nécessaire, le premier didacticiel crée et configure un domaine managé Microsoft Entra Domain Services.
- Un compte d’utilisateur qui fait partie du domaine managé. Vérifiez que l’attribut SAMAccountName pour l’utilisateur n’est pas généré automatiquement. Si plusieurs comptes d’utilisateur du locataire Microsoft Entra ont le même attribut mailNickname, l’attribut SAMAccountName pour chaque utilisateur est généré automatiquement. Pour plus d’informations, consultez Comment les objets et les informations d’identification sont synchronisés dans un domaine managé Microsoft Entra Domain Services.
- Noms de machines virtuelles Linux uniques qui sont au maximum de 15 caractères pour éviter les noms tronqués susceptibles d’entraîner des conflits dans Active Directory.
Créer et se connecter à une machine virtuelle Linux Ubuntu
Si vous disposez d’une machine virtuelle Linux Ubuntu existante dans Azure, connectez-vous à l’aide de SSH, puis passez à l’étape suivante pour commencer à configurer la machine virtuelle.
Si vous devez créer une machine virtuelle Linux Ubuntu ou si vous souhaitez créer une machine virtuelle de test à utiliser avec cet article, vous pouvez utiliser l’une des méthodes suivantes :
Lorsque vous créez la machine virtuelle, faites attention aux paramètres du réseau virtuel pour vous assurer que la machine virtuelle peut communiquer avec le domaine managé :
- Déployez la machine virtuelle sur le même réseau virtuel ou sur un réseau appairé dans lequel vous avez activé Microsoft Entra Domain Services.
- Déployez la machine virtuelle dans un sous-réseau différent de celui de votre domaine managé Microsoft Entra Domain Services.
Une fois la machine virtuelle déployée, suivez les étapes pour vous connecter à la machine virtuelle à l’aide de SSH.
Configurer le fichier hosts
Pour vous assurer que le nom d’hôte de la machine virtuelle est correctement configuré pour le domaine managé, modifiez l'/etc/hosts fichier et définissez le nom d’hôte :
sudo vi /etc/hosts
Dans le fichier hosts, mettez à jour l’adresse localhost. Dans l’exemple suivant :
- aaddscontoso.com est le nom de domaine DNS de votre domaine managé.
- ubuntu est le nom d’hôte de votre machine virtuelle Ubuntu que vous joignez au domaine managé.
Mettez à jour ces noms avec vos propres valeurs :
127.0.0.1 ubuntu.aaddscontoso.com ubuntu
Lorsque vous avez terminé, enregistrez et quittez le fichier des hôtes à l’aide de la commande :wq
de l’éditeur.
Installer les packages requis
La machine virtuelle a besoin de packages supplémentaires pour joindre la machine virtuelle au domaine managé. Pour installer et configurer ces packages, mettez à jour et installez les outils de jonction de domaine à l’aide de apt-get
Pendant l’installation de Kerberos, le package krb5-user demande le nom de domaine TOUT EN MAJUSCULES. Par exemple, si le nom de votre domaine managé est aaddscontoso.com, entrez AADDSCONTOSO.COM en tant que domaine. L’installation écrit les sections [realm]
et [domain_realm]
dans /etc/krb5.conf fichier de configuration. Veillez à spécifier le domaine TOUT EN MAJUSCULES :
sudo apt-get update
sudo apt-get install krb5-user samba sssd sssd-tools libnss-sss libpam-sss ntp ntpdate realmd adcli
Configurer le protocole NTP (Network Time Protocol)
Pour que la communication de domaine fonctionne correctement, la date et l’heure de votre machine virtuelle Ubuntu doivent être synchronisées avec le domaine managé. Ajoutez le nom d’hôte NTP de votre domaine managé au fichier /etc/ntp.conf.
Ouvrez le fichier ntp.conf
avec un éditeur : sudo vi /etc/ntp.conf
Dans le fichier ntp.conf, créez une ligne pour ajouter le nom DNS de votre domaine managé. Dans l’exemple suivant, on ajoute une entrée pour aaddscontoso.com. Utilisez votre propre nom DNS :
server aaddscontoso.com
Lorsque vous avez terminé, enregistrez et quittez le fichier ntp.conf à l’aide de la commande
:wq
de l’éditeur.Pour vous assurer que la machine virtuelle est synchronisée avec le domaine managé, les étapes suivantes sont nécessaires :
- Arrêter le serveur NTP
- Mettre à jour la date et l’heure à partir du domaine managé
- Démarrer le service NTP
Exécutez les commandes suivantes pour effectuer ces étapes. Utilisez votre propre nom DNS avec la commande
ntpdate
:sudo systemctl stop ntp sudo ntpdate aaddscontoso.com sudo systemctl start ntp
Joindre une machine virtuelle au domaine managé
Maintenant que les packages requis sont installés sur la machine virtuelle et que NTP sont configurés, joignez la machine virtuelle au domaine managé.
Utilisez la commande
realm discover
pour découvrir le domaine managé. L’exemple suivant découvre le domaine AADDSCONTOSO.COM. Spécifiez votre propre nom de domaine managé dans ALL UPPERCASE :sudo realm discover AADDSCONTOSO.COM
Si la commande
realm discover
ne trouve pas votre domaine managé, passez en revue les étapes de dépannage suivantes :- Assurez-vous que le domaine est accessible à partir de la machine virtuelle. Essayez
ping aaddscontoso.com
pour voir si une réponse positive est retournée. - Vérifiez que la machine virtuelle est déployée dans le réseau virtuel où le domaine managé est disponible ou dans un réseau virtuel appairé.
- Vérifiez que les paramètres du serveur DNS pour le réseau virtuel ont été mis à jour pour pointer vers les contrôleurs de domaine du domaine managé.
- Assurez-vous que le domaine est accessible à partir de la machine virtuelle. Essayez
Initialisez Maintenant Kerberos à l’aide de la commande
kinit
. Spécifiez un utilisateur qui fait partie du domaine managé. En cas de besoin, ajoutez un compte d'utilisateur à un groupe dans Microsoft Entra ID.Là encore, le nom de domaine managé doit être entré dans ALL UPPERCASE. Dans l’exemple suivant, le compte nommé
contosoadmin@aaddscontoso.com
est utilisé pour initialiser Kerberos. Entrez votre propre compte d’utilisateur qui fait partie du domaine managé :sudo kinit -V contosoadmin@AADDSCONTOSO.COM
Enfin, joignez la machine virtuelle au domaine managé à l’aide de la commande
realm join
. Utilisez le même compte d’utilisateur qui fait partie du domaine managé que vous avez spécifié dans la commandekinit
précédente, par exemplecontosoadmin@AADDSCONTOSO.COM
:sudo realm join --verbose AADDSCONTOSO.COM -U 'contosoadmin@AADDSCONTOSO.COM' --install=/
La jonction de la machine virtuelle au domaine managé prend quelques instants. L’exemple de sortie suivant montre que la machine virtuelle est correctement jointe au domaine managé :
Successfully enrolled machine in realm
Si votre machine virtuelle ne parvient pas à terminer le processus de jonction de domaine, assurez-vous que le groupe de sécurité réseau de la machine virtuelle autorise le trafic Kerberos sortant sur le port TCP + UDP 464 vers le sous-réseau de réseau virtuel de votre domaine managé.
Si vous avez reçu l’erreur échec GSS non spécifié. Le code mineur peut fournir plus d’informations (serveur introuvable dans la base de données Kerberos), ouvrir le fichier /etc/krb5.conf et ajouter le code suivant dans [libdefaults]
section et réessayer :
rdns=false
Mettre à jour la configuration SSSD
L’un des packages installés à l’étape précédente était destiné au démon System Security Services (SSSD). Lorsqu’un utilisateur tente de se connecter à une machine virtuelle à l’aide d’informations d’identification de domaine, SSSD transmet la demande à un fournisseur d’authentification. Dans ce scénario, SSSD utilise Les services de domaine pour authentifier la demande.
Ouvrez le fichier sssd.conf avec un éditeur :
sudo vi /etc/sssd/sssd.conf
Commentez la ligne pour use_fully_qualified_names comme ceci :
# use_fully_qualified_names = True
Lorsque vous avez terminé, enregistrez et quittez le fichier sssd.conf à l’aide de la commande
:wq
de l’éditeur.Pour appliquer la modification, redémarrez le service SSSD :
sudo systemctl restart sssd
Configurer les paramètres de compte d’utilisateur et de groupe
Une fois la machine virtuelle jointe au domaine managé et configurée pour l’authentification, il existe quelques options de configuration utilisateur à effectuer. Ces modifications de configuration incluent l’autorisation de l’authentification par mot de passe et la création automatique de répertoires d’accueil sur la machine virtuelle locale lorsque les utilisateurs du domaine se connectent pour la première fois.
Autoriser l’authentification par mot de passe pour SSH
Par défaut, les utilisateurs peuvent uniquement se connecter à une machine virtuelle à l’aide de l’authentification basée sur des clés publiques SSH. L’authentification par mot de passe échoue. Lorsque vous joignez la machine virtuelle à un domaine managé, ces comptes de domaine doivent utiliser l’authentification par mot de passe. Mettez à jour la configuration SSH pour autoriser l’authentification basée sur mot de passe comme suit.
Remarque
Les images de la place de marché Ubuntu ont généralement quelques options de configuration définies sous /etc/ssh/sshd_config.d, notamment PasswordAuthentication dans le fichier 50-cloud-init.conf. Veillez donc à mettre à jour ce fichier pour éviter qu'il n'écrase celui qui est défini avec les étapes ci-dessous.
Ouvrez le fichier sshd_conf avec un éditeur :
sudo vi /etc/ssh/sshd_config
Mettez à jour la ligne pour PasswordAuthentication sur yes :
PasswordAuthentication yes
Lorsque vous avez terminé, enregistrez et quittez le fichier sshd_conf à l’aide de la commande
:wq
de l’éditeur.Pour appliquer les modifications et permettre aux utilisateurs de se connecter à l’aide d’un mot de passe, redémarrez le service SSH :
sudo systemctl restart ssh
Configurer la création automatique du répertoire d’accueil
Pour activer la création automatique du répertoire de base lorsqu’un utilisateur se connecte pour la première fois, procédez comme suit :
Ouvrez le fichier
/etc/pam.d/common-session
dans un éditeur :sudo vi /etc/pam.d/common-session
Ajoutez la ligne suivante dans ce fichier sous la ligne
session optional pam_sss.so
:session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
Lorsque vous avez terminé, enregistrez et quittez le fichier de session commune
à l’aide de la commande de l’éditeur.
Accorder les privilèges sudo au groupe « Administrateurs du contrôleur de domaine AAD »
Pour accorder des privilèges d’administration aux membres du groupe Administrateurs AAD DC sur la machine virtuelle Ubuntu, ajoutez une entrée au fichier /etc/sudoers. Une fois ajoutés, les membres du groupe Administrateurs AAD DC peuvent utiliser la commande sudo
sur la machine virtuelle Ubuntu.
Ouvrez le fichier sudoers pour modification :
sudo visudo
Ajoutez l’entrée suivante à la fin de fichier /etc/sudoers :
# Add 'AAD DC Administrators' group members as admins. %AAD\ DC\ Administrators ALL=(ALL) NOPASSWD:ALL
Lorsque vous avez terminé, enregistrez et quittez l’éditeur à l’aide de la commande
Ctrl-X
.
Se connecter à la machine virtuelle à l’aide d’un compte de domaine
Pour vérifier que la machine virtuelle a été correctement jointe au domaine managé, démarrez une nouvelle connexion SSH à l’aide d’un compte d’utilisateur de domaine. Vérifiez qu’un répertoire de base a été créé et que l’appartenance au groupe à partir du domaine est appliquée.
Créez une connexion SSH à partir de votre console. Utilisez un compte de domaine qui appartient au domaine managé à l’aide de la commande
ssh -l
, telle quecontosoadmin@aaddscontoso.com
, puis entrez l’adresse de votre machine virtuelle, telle que ubuntu.aaddscontoso.com. Si vous utilisez Azure Cloud Shell, utilisez l’adresse IP publique de la machine virtuelle plutôt que le nom DNS interne.sudo ssh -l contosoadmin@AADDSCONTOSO.com ubuntu.aaddscontoso.com
Une fois que vous avez correctement connecté à la machine virtuelle, vérifiez que le répertoire de base a été initialisé correctement :
sudo pwd
Vous devez être dans le répertoire /home avec votre propre répertoire qui correspond au compte d’utilisateur.
Vérifiez maintenant que les appartenances aux groupes sont correctement résolues :
sudo id
Vous devriez voir vos appartenances à des groupes à partir du domaine géré.
Si vous vous êtes connecté à la machine virtuelle en tant que membre du groupe administrateurs AAD DC
, vérifiez que vous pouvez utiliser correctement la commande : sudo apt-get update
Étapes suivantes
Si vous rencontrez des problèmes lors de la connexion de la machine virtuelle au domaine managé ou de la connexion avec un compte de domaine, consultez Résolution des problèmes de jonction de domaine.