Joindre une machine virtuelle SUSE Linux Enterprise à un domaine managé Microsoft Entra Domain Services

Pour permettre aux utilisateurs de se connecter aux machines virtuelles (VM) 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. Quand vous joignez une machine virtuelle à un domaine managé Domain Services, les comptes d’utilisateurs et les informations d’identification du domaine peuvent être utilisés pour se connecter aux serveurs et les gérer. Les appartenances aux groupes du domaine managé sont également appliquées pour vous permettre de contrôler l’accès aux fichiers ou aux services sur la machine virtuelle.

Cet article montre comment joindre une machine virtuelle SUSE Linux Enterprise (SLE) à un domaine managé.

Prérequis

Pour effectuer ce tutoriel, vous avez besoin des ressources et des privilèges suivants :

Créer une machine virtuelle Linux SLE et s’y connecter

Si vous disposez d’une machine virtuelle Linux SLE dans Azure, connectez-vous-y en utilisant SSH, puis passez à l’étape suivante pour commencer à configurer la machine virtuelle.

Si vous avez besoin de créer une machine virtuelle Linux SLE ou si vous souhaitez créer une machine virtuelle de test dans le cadre de cet article, vous pouvez employer l’une des méthodes suivantes :

Au moment de créer la machine virtuelle, faites attention aux paramètres de réseau virtuel et veillez à ce que la machine virtuelle puisse 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 avec SSH.

Configurer le fichier hosts

Pour que le nom d’hôte de la machine virtuelle soit correctement configuré pour le domaine managé, modifiez le fichier /etc/hosts 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é.
  • linux-q2gr est le nom d’hôte de votre machine virtuelle SLE que vous joignez au domaine managé.

Mettez à jour ces noms avec vos propres valeurs :

127.0.0.1 linux-q2gr linux-q2gr.aaddscontoso.com

Quand vous avez terminé, enregistrez et quittez le fichier hosts à l’aide de la commande :wq de l’éditeur.

Joindre la machine virtuelle au domaine managé en utilisant SSSD

Pour joindre le domaine managé à l’aide de SSSD et du module User Logon Management de YaST, procédez comme suit :

  1. Installez le module YaST User Logon Management :

    sudo zypper install yast2-auth-client
    
  2. Ouvrez YaST.

  3. Pour utiliser la découverte automatique DNS ultérieurement, configurez les adresses IP de domaine managé (Active Directory server) en tant que serveur de nom pour votre client.

    Dans YaST, sélectionnez System > Network Settings.

  4. Sélectionnez l’onglet Hostname/DNS, puis entrez la ou les adresses IP du domaine managé dans la zone de texte Name Server 1. Ces adresses IP sont affichées dans la fenêtre Propriétés du centre d’administration Microsoft Entra pour votre domaine managé, par exemple 10.0.2.4 et 10.0.2.5.

    Ajoutez vos propres adresses IP de domaine managé, puis sélectionnez OK.

  5. Dans la fenêtre principale de YaST, choisissez Network Services>User Logon Management.

    Le module s’ouvre avec une vue d’ensemble montrant les différentes propriétés réseau de votre ordinateur et la méthode d’authentification actuellement utilisée, comme le montre l’exemple de capture d’écran suivant :

    Example screenshot of the User Login Management window in YaST

    Pour commencer la modification, sélectionnez Change Settings.

Pour joindre une machine virtuelle à un domaine managé, procédez comme suit :

  1. Dans la boîte de dialogue, sélectionnez Add Domain.

  2. Spécifiez le nom de domaine (Domain name) correct, par exemple aaddscontoso.com, puis spécifiez les services à utiliser pour les données d’identité et l’authentification. Sélectionnez Microsoft Active Directory pour les deux.

    Assurez-vous que l’option Enable the domain est sélectionnée.

  3. Lorsque vous êtes prêt, sélectionnez OK.

  4. Acceptez les paramètres par défaut dans la boîte de dialogue suivante, puis sélectionnez OK.

  5. La machine virtuelle installe des logiciels supplémentaires le cas échéant, puis vérifie si le domaine managé est disponible.

    Si tout est correct, la boîte de dialogue suivante s’affiche pour indiquer que la machine virtuelle a découvert le domaine managé, mais que vous n’êtes pas encore inscrit (Not yet enrolled).

    Example screenshot of the Active Directory enrollment window in YaST

  6. Dans la boîte de dialogue, spécifiez le nom d’utilisateur (Username) et le mot de passe (Password) d’un utilisateur qui fait partie du domaine managé. Si nécessaire, ajoutez un compte d’utilisateur à un groupe dans Microsoft Entra ID.

    Pour vous assurer que le domaine actuel est activé pour Samba, activez l’option Overwrite Samba configuration to work with this AD.

  7. Pour vous inscrire, sélectionnez OK.

  8. Un message s’affiche pour confirmer que vous êtes correctement inscrit. Pour terminer, sélectionnez OK.

Une fois la machine virtuelle inscrite dans le domaine managé, configurez le client en utilisant Manage Domain User Logon, comme illustré dans la capture d’écran suivante :

Example screenshot of the Manage Domain User Logon window in YaST

  1. Pour autoriser les connexions à l’aide des données fournies par le domaine managé, cochez la case de l’option Allow Domain User Logon.

  2. Si vous le souhaitez, sous Enable domain data source, cochez les sources de données supplémentaires nécessaires pour votre environnement. Ces options incluent les utilisateurs autorisés à utiliser sudo ou les lecteurs réseau disponibles.

  3. Pour permettre aux utilisateurs du domaine managé d’avoir des répertoires de base sur la machine virtuelle, cochez la case de l’option Create Home Directories.

  4. Dans la barre latérale, sélectionnez Service Options › Nom à changer, puis Extended Options. Dans cette fenêtre, sélectionnez fallback_homedir ou override_homedir, puis sélectionnez Add.

  5. Spécifiez une valeur pour l’emplacement du répertoire de base. Pour que les répertoires de base respectent le format /home/USER_NAME, utilisez /home/%u. Pour plus d’informations sur les variables possibles, consultez la page man sssd.conf (man 5 sssd.conf), section override_homedir.

  6. Sélectionnez OK.

  7. Pour enregistrer les modifications, sélectionnez OK. Vérifiez ensuite que les valeurs affichées sont désormais correctes. Pour quitter la boîte de dialogue, sélectionnez Cancel.

  8. Si vous avez l’intention d’exécuter simultanément SSSD et Winbind (par exemple, lors de la jointure via SSSD, mais en exécutant un serveur de fichiers Samba), l’option Samba kerberos method doit être définie sur secrets and keytab dans smb.conf. L’option SSSD ad_update_samba_machine_account_password doit également être définie sur true dans sssd.conf. Ces options empêchent le keytab système de se désynchroniser.

Joindre la machine virtuelle au domaine managé en utilisant Winbind

Pour joindre le domaine managé à l’aide de Winbind et du module Windows Domain Membership de YaST, procédez comme suit :

  1. Dans YaST, sélectionnez Network Services > Windows Domain Membership.

  2. Entrez le domaine à joindre dans Domain or Workgroup dans l’écran Windows Domain Membership. Entrez le nom de domaine managé, par exemple aaddscontoso.com.

    Example screenshot of the Windows Domain Membership window in YaST

  3. Afin d’utiliser la source SMB pour l’authentification Linux, activez l’option Use SMB Information for Linux Authentication.

  4. Pour créer automatiquement un répertoire de base local pour les utilisateurs de domaine managé sur la machine virtuelle, activez l’option Create Home Directory on Login.

  5. Activez l’option Offline Authentication pour permettre aux utilisateurs du domaine de se connecter même si le domaine managé est temporairement indisponible.

  6. Si vous souhaitez modifier les plages UID et GID pour les utilisateurs et groupes Samba, sélectionnez Expert Settings.

  7. Configurez la synchronisation de l’heure NTP (Network Time Protocol) pour votre domaine managé en sélectionnant NTP Configuration. Entrez les adresses IP du domaine managé. Ces adresses IP sont affichées dans la fenêtre Propriétés du centre d’administration Microsoft Entra pour votre domaine managé, par exemple 10.0.2.4 et 10.0.2.5.

  8. Sélectionnez OK et confirmez la jonction de domaine lorsque vous y êtes invité.

  9. Indiquez le mot de passe d’un administrateur du domaine managé, puis sélectionnez OK.

    Example screenshot of the authentication dialog prompt when you join a SLE VM to the managed domain

Une fois que vous avez joint le domaine managé, vous pouvez vous y connecter à partir de votre station de travail à l’aide du gestionnaire d’affichage de votre bureau ou de la console.

Joindre la machine virtuelle au domaine managé à l’aide de Winbind à partir de l’interface de ligne de commande YaST

Pour joindre le domaine managé à l’aide de winbind et de l’interface de ligne de commande YaST :

  • Joindre le domaine :

    sudo yast samba-client joindomain domain=aaddscontoso.com user=<admin> password=<admin password> machine=<(optional) machine account>
    

Joindre la machine virtuelle au domaine managé à l’aide de Winbind à partir du terminal

Pour joindre le domaine managé à l’aide de Winbind et de l’interface de ligne de commande samba net :

  1. Installez le client Kerberos et samba-winbind :

    sudo zypper in krb5-client samba-winbind
    
  2. Modifiez les fichiers de configuration :

    • /etc/samba/smb.conf

      [global]
          workgroup = AADDSCONTOSO
          usershare allow guests = NO #disallow guests from sharing
          idmap config * : backend = tdb
          idmap config * : range = 1000000-1999999
          idmap config AADDSCONTOSO : backend = rid
          idmap config AADDSCONTOSO : range = 5000000-5999999
          kerberos method = secrets and keytab
          realm = AADDSCONTOSO.COM
          security = ADS
          template homedir = /home/%D/%U
          template shell = /bin/bash
          winbind offline logon = yes
          winbind refresh tickets = yes
      
    • /etc/krb5.conf

      [libdefaults]
          default_realm = AADDSCONTOSO.COM
          clockskew = 300
      [realms]
          AADDSCONTOSO.COM = {
              kdc = PDC.AADDSCONTOSO.COM
              default_domain = AADDSCONTOSO.COM
              admin_server = PDC.AADDSCONTOSO.COM
          }
      [domain_realm]
          .aaddscontoso.com = AADDSCONTOSO.COM
      [appdefaults]
          pam = {
              ticket_lifetime = 1d
              renew_lifetime = 1d
              forwardable = true
              proxiable = false
              minimum_uid = 1
          }
      
    • /etc/security/pam_winbind.conf

      [global]
          cached_login = yes
          krb5_auth = yes
          krb5_ccache_type = FILE
          warn_pwd_expire = 14
      
    • /etc/nsswitch.conf

      passwd: compat winbind
      group: compat winbind
      
  3. Vérifiez que la date et l’heure dans Microsoft Entra ID et Linux sont synchronisées. Pour ce faire, vous pouvez ajouter le serveur Microsoft Entra au service NTP :

    1. Ajoutez la ligne suivante à /etc/ntp.conf :

      server aaddscontoso.com
      
    2. Redémarrez le service NTP :

      sudo systemctl restart ntpd
      
  4. Joignez le domaine :

    sudo net ads join -U Administrator%Mypassword
    
  5. Activez winbind comme source de connexion dans les modules PAM (Pluggable Authentication Modules) Linux :

    config pam-config --add --winbind
    
  6. Activez la création automatique des répertoires de démarrage afin que les utilisateurs puissent se connecter :

    sudo pam-config -a --mkhomedir
    
  7. Démarrez et activez le service Winbind :

    sudo systemctl enable winbind
    sudo systemctl start winbind
    

Autoriser l’authentification par mot de passe pour SSH

Par défaut, les utilisateurs ne peuvent se connecter à une machine virtuelle qu’avec l’authentification par clé publique SSH. L’authentification par mot de passe échoue. Quand 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 par mot de passe comme suit.

  1. Ouvrez le fichier sshd_conf avec un éditeur :

    sudo vi /etc/ssh/sshd_config
    
  2. Mettez à jour la ligne pour PasswordAuthentication sur yes :

    PasswordAuthentication yes
    

    Quand vous avez terminé, enregistrez et quittez le fichier sshd_conf à l’aide de la commande :wq de l’éditeur.

  3. 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 sshd
    

Accorder les privilèges sudo au groupe « Administrateurs du contrôleur de domaine AAD »

Pour accorder des privilèges administratifs aux membres du groupe AAD DC Administrators sur la machine virtuelle SLE, ajoutez une entrée au fichier /etc/sudoers. Une fois ajoutés, les membres du groupe AAD DC Administrators peuvent utiliser la commande sudo sur la machine virtuelle SLE.

  1. Ouvrez le fichier sudoers pour le modifier :

    sudo visudo
    
  2. Ajoutez l’entrée suivante à la fin du fichier /etc/sudoers. Étant donné que le nom de groupe Administrateurs du contrôleur de domaine AAD contient un espace, incluez-y une barre oblique inverse en guise de caractère d’échappement. Ajoutez votre propre nom de domaine, par exemple aaddscontoso.com :

    # Add 'AAD DC Administrators' group members as admins.
    %AAD\ DC\ Administrators@aaddscontoso.com ALL=(ALL) NOPASSWD:ALL
    

    Quand vous avez terminé, enregistrez et quittez l’éditeur à l’aide de la commande :wq de l’éditeur.

Se connecter à la machine virtuelle à l’aide d’un compte de domaine

Pour vérifier que la machine virtuelle a bien été jointe au domaine managé, démarrez une nouvelle connexion SSH en utilisant un compte d’utilisateur du domaine. Vérifiez qu’un répertoire de base a été créé et que l’appartenance au groupe du domaine est appliquée.

  1. 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, par exemple contosoadmin@aaddscontoso.com, puis entrez l’adresse de votre machine virtuelle, par exemple linux-q2gr.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 linux-q2gr.aaddscontoso.com
    
  2. Une fois connecté à la machine virtuelle, vérifiez que le répertoire de base a bien été initialisé :

    sudo pwd
    

    Vous devez vous trouver dans le répertoire de base /home et votre propre répertoire doit correspondre au compte d’utilisateur.

  3. Vérifiez maintenant que les appartenances aux groupes sont correctement résolues :

    sudo id
    

    Vos appartenances aux groupes du domaine managé doivent s’afficher.

  4. Si vous vous êtes connecté à la machine virtuelle en tant que membre du groupe Administrateurs AAD DC, vérifiez que vous pouvez bien utiliser la commande sudo :

    sudo zypper update
    

Étapes suivantes

Si vous avez des difficultés à connecter la machine virtuelle au domaine managé ou à vous connecter avec un compte de domaine, consultez Résoudre les problèmes de jonction à un domaine.