Pour prendre en charge True SSO sur des postes de travail Ubuntu/Debian, vous pouvez intégrer la machine virtuelle (VM) de base à un domaine Active Directory (AD) à l'aide des solutions Samba et Winbind.
Pour intégrer une VM Ubuntu/Debian à un domaine AD à l'aide de Samba et Winbind, utilisez la procédure suivante.
Certains exemples de la procédure utilisent des valeurs d'espace réservé pour représenter des entités dans votre configuration réseau, telles que le nom d'hôte de votre VM. Remplacez les valeurs d'espace réservé par des informations spécifiques à votre configuration, comme décrit dans le tableau suivant.
Valeur d'espace réservé |
Description |
dns_IP_ADDRESS |
Adresse IP de votre serveur de nom DNS |
mydomain.com |
Nom DNS de votre domaine AD |
MYDOMAIN.COM |
Nom DNS de votre domaine AD en majuscules |
myhost |
Nom d'hôte de votre VM Ubuntu/Debian |
MYDOMAIN |
Nom DNS du groupe de travail ou domaine NT qui inclut votre serveur Samba, en majuscules |
ads-hostname |
Nom d'hôte de votre serveur AD |
admin-user |
Nom d'utilisateur de l'administrateur de domaine AD |
Conditions préalables
Vérifiez les points suivants :
- Le serveur AD peut être résolu par DNS sur la VM.
- Le protocole NTP (Network Time Protocol) est configuré sur la VM.
Procédure
- Sur la VM Ubuntu/Debian, installez les modules samba et winbind.
sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind
- Configurez les paramètres d'authentification Kerberos.
- Si la fenêtre des paramètres d'authentification Kerberos ne s'affiche pas sur le système, exécutez la commande suivante pour l'afficher.
sudo dpkg-reconfigure krb5-config
- Pour Default Kerberos version 5 realm, entrez le nom DNS de votre domaine AD en majuscules.
Par exemple, si votre nom de domaine AD est
mydomain.com, entrez
MYDOMAIN.COM.
- Pour Kerberos servers for your realm, entrez le nom d'hôte de votre serveur AD (représenté par ads_hostname dans les exemples de cette procédure).
- Pour Administrative server for your Kerberos realm, entrez à nouveau le nom d'hôte de votre serveur AD.
- Mettez à jour la configuration PAM.
- Ouvrez la page de configuration PAM.
- Sélectionnez Create home directory on login, puis OK.
- Modifiez le fichier de configuration /etc/nsswitch.conf, comme indiqué dans l'exemple suivant.
passwd: compat winbind
group: compat winbind
shadow: compat
gshadow: files
- (Facultatif) Si le système détecte automatiquement le serveur DNS approprié, ignorez cette étape et passez à l'étape suivante. Si le système ne parvient pas à détecter le serveur DNS approprié, effectuez cette étape pour définir le serveur DNS manuellement.
Pour vous assurer que le fichier généré automatiquement
resolv.conf fait référence à votre domaine AD en tant que domaine de recherche, modifiez les paramètres de NetworkManager pour la connexion à votre système. Les sous-étapes suivantes fournissent les exemples d'instructions pour un système Ubuntu 20.04.
- Ouvrez le panneau de configuration NetworkManager et accédez à Paramètres IPv4 pour la connexion à votre système. Pour Méthode, sélectionnez Adresses automatiques (DHCP) uniquement. Dans la zone de texte Serveurs DNS, entrez l'adresse IP de votre serveur de nom DNS (représenté par dns_IP_ADDRESS dans les exemples de cette procédure). Cliquez ensuite sur Enregistrer.
- Modifiez le fichier /etc/dhcp/dhclient.conf, comme indiqué dans l'exemple suivant.
supersede domain-name "mydomain.com";
prepend domain-name-servers dns_IP_ADDRESS;
- Modifiez le fichier /etc/systemd/resolved.conf, comme indiqué dans l'exemple suivant.
DNS=dns_IP_ADDRESS
Domains="mydomain.com"
Note : Un nouvel adaptateur réseau virtuel est ajouté lors de la création d'un poste de travail virtuel Instant Clone. Lorsque vous ajoutez l'adaptateur réseau à un poste de travail virtuel cloné, le modèle de poste de travail virtuel efface les paramètres de l'adaptateur réseau, tels que le serveur DNS. Pour conserver le paramètre de serveur DNS lors de l'ajout d'un nouvel adaptateur réseau, vous devez indiquer un serveur DNS pour la VM.
- Spécifiez le serveur DNS en modifiant le fichier de configuration /etc/resolv.conf, comme indiqué dans l'exemple suivant. Si un avertissement s'affiche, vous pouvez ignorer et poursuivre les modifications.
nameserver dns_IP_ADDRESS
search mydomain.com
- Redémarrez la VM et reconnectez-vous.
- Modifiez le fichier de configuration /etc/hosts, comme indiqué dans l'exemple suivant.
127.0.0.1 localhost
127.0.1.1 myhost.mydomain.com myhost
- Modifiez le fichier de configuration /etc/samba/smb.conf, comme indiqué dans l'exemple suivant.
[global]
security = ads
realm = MYDOMAIN.COM
workgroup = MYDOMAIN
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
winbind use default domain = yes
restrict anonymous = 2
kerberos method = secrets and keytab
winbind refresh tickets = true
- Redémarrez le service smbd.
sudo systemctl restart smbd.service
- Modifiez le fichier de configuration /etc/krb5.conf afin que son contenu soit semblable à l'exemple suivant.
[libdefaults]
default_realm = MYDOMAIN.COM
dns_lookup_realm = true
dns_lookup_kdc = true
[realms]
MYDOMAIN.COM = {
kdc = ads-hostname
admin_server = ads-hostname
}
[domain_realm]
.mydomain.com = MYDOMAIN.COM
mydomain.com = MYDOMAIN.COM
- Joignez la VM Ubuntu/Debian au domaine AD.
- Initiez un ticket Kerberos.
sudo kinit admin-user
Lorsque vous y êtes invité, entrez votre mot de passe administrateur.
- Vérifiez que le ticket a bien été créé.
sudo klist
Cette commande renvoie des informations sur le ticket, y compris son heure de début et son délai d'expiration valides.
- Créez un fichier keytab Kerberos.
sudo net ads keytab create -U admin-user
- Joignez le domaine AD.
sudo net ads join -U admin-user
- Redémarrez et vérifiez le service Winbind.
- Redémarrez le service Winbind.
sudo systemctl restart winbind.service
- Pour vérifier le service Winbind, exécutez les commandes suivantes et vérifiez qu'elles renvoient le résultat correct.
- sudo wbinfo -u
- sudo wbinfo -g
- sudo getent passwd
- sudo getent group
- Redémarrez la VM et reconnectez-vous.