1.4. Connexion directe à AD
Le System Security Services Daemon (SSSD) est le composant recommandé pour connecter un système Red Hat Enterprise Linux (RHEL) à Active Directory (AD). Cette section décrit comment s'intégrer directement à AD en utilisant le mappage d'ID, qui est la valeur par défaut de SSSD, ou en utilisant des attributs POSIX.
1.4.1. Découvrir et rejoindre un domaine AD à l'aide de SSSD
Cette procédure décrit comment découvrir un domaine AD et connecter un système RHEL à ce domaine à l'aide de SSSD.
Conditions préalables
Assurez-vous que les ports suivants des contrôleurs de domaine AD sont ouverts et accessibles à l'hôte RHEL.
Tableau 1.1. Ports requis pour l'intégration directe de systèmes Linux dans AD à l'aide de SSSD Service Port Protocol Notes DNS
53
UDP et TCP
LDAP
389
UDP et TCP
Samba
445
UDP et TCP
Pour les objets de stratégie de groupe AD (GPO)
Kerberos
88
UDP et TCP
Kerberos
464
UDP et TCP
Utilisé par
kadmin
pour définir et modifier un mot de passeCatalogue global LDAP
3268
TCP
Si l'option
id_provider = ad
est utiliséeNTP
123
UDP
En option
- Assurez-vous que vous utilisez le serveur du contrôleur de domaine AD pour le DNS.
- Vérifiez que l'heure des deux systèmes est synchronisée. Cela permet à Kerberos de fonctionner correctement.
Procédure
Install the following packages:
# dnf install samba-common-tools realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
Pour afficher les informations relatives à un domaine spécifique, exécutez
realm discover
et ajoutez le nom du domaine que vous souhaitez découvrir :# realm discover ad.example.com ad.example.com type: kerberos realm-name: AD.EXAMPLE.COM domain-name: ad.example.com configured: no server-software: active-directory client-software: sssd required-package: oddjob required-package: oddjob-mkhomedir required-package: sssd required-package: adcli required-package: samba-common
Le système
realmd
utilise les recherches DNS SRV pour trouver automatiquement les contrôleurs de domaine de ce domaine.NoteLe système
realmd
peut découvrir les domaines Active Directory et Identity Management. Si les deux domaines existent dans votre environnement, vous pouvez limiter les résultats de la découverte à un type de serveur spécifique à l'aide de l'option--server-software=active-directory
.Configurez le système RHEL local à l'aide de la commande
realm join
. La suiterealmd
édite automatiquement tous les fichiers de configuration requis. Par exemple, pour un domaine nomméad.example.com
:# realm join ad.example.com
Verification steps
Affiche les détails d'un utilisateur AD, tel que l'utilisateur administrateur :
# getent passwd administrator@ad.example.com administrator@ad.example.com:*:1450400500:1450400513:Administrator:/home/administrator@ad.example.com:/bin/bash
Ressources supplémentaires
-
Voir la page de manuel
realm(8)
. -
Voir la page de manuel
nmcli(1)
.
1.4.2. Options pour l'intégration avec AD : utiliser le mappage d'ID ou les attributs POSIX
Les systèmes Linux et Windows utilisent des identifiants différents pour les utilisateurs et les groupes :
- Linux utilise user IDs (UID) et group IDs (GID). Voir Introduction à la gestion des comptes d'utilisateurs et de groupes sur Configuring Basic System Settings. Les UID et GID de Linux sont conformes à la norme POSIX.
- Windows utilise security IDs (SID).
Après avoir connecté un système RHEL à AD, vous pouvez vous authentifier avec votre nom d'utilisateur et votre mot de passe AD. Ne créez pas d'utilisateur Linux portant le même nom qu'un utilisateur Windows, car les noms en double pourraient provoquer un conflit et interrompre le processus d'authentification.
Pour vous authentifier sur un système RHEL en tant qu'utilisateur AD, vous devez disposer d'un UID et d'un GID. SSSD offre la possibilité de s'intégrer à AD en utilisant le mappage d'ID ou les attributs POSIX. Par défaut, le mappage d'ID est utilisé.
Générer automatiquement de nouveaux UID et GID pour les utilisateurs AD
SSSD peut utiliser le SID d'un utilisateur AD pour générer algorithmiquement des ID POSIX dans un processus appelé ID mapping. Le mappage d'ID crée une correspondance entre les SID dans AD et les ID sur Linux.
- Lorsque SSSD détecte un nouveau domaine AD, il lui attribue une série d'identifiants disponibles.
- Lorsqu'un utilisateur AD se connecte pour la première fois à une machine cliente SSSD, SSSD crée une entrée pour l'utilisateur dans le cache SSSD, y compris un UID basé sur le SID de l'utilisateur et la plage d'ID pour ce domaine.
- Étant donné que les identifiants d'un utilisateur AD sont générés de manière cohérente à partir du même SID, l'utilisateur possède les mêmes UID et GID lorsqu'il se connecte à n'importe quel système Red Hat Enterprise Linux.
Voir Découvrir et rejoindre un domaine AD à l'aide de SSSD.
Lorsque tous les systèmes clients utilisent SSSD pour mapper les SID avec les ID Linux, le mappage est cohérent. Si certains clients utilisent des logiciels différents, choisissez l'une des options suivantes :
- Veillez à ce que le même algorithme de mappage soit utilisé sur tous les clients.
- Utiliser les attributs POSIX explicites définis dans AD.
Utiliser les attributs POSIX définis dans AD
AD peut créer et stocker des attributs POSIX, tels que uidNumber
, gidNumber
, unixHomeDirectory
ou loginShell
.
Lors de l'utilisation du mappage d'ID décrit ci-dessus, SSSD crée de nouveaux UID et GID, qui remplacent les valeurs définies dans AD. Pour conserver les valeurs définies dans AD, vous devez désactiver le mappage d'ID dans SSSD.
Voir Connexion à AD à l'aide d'attributs POSIX définis dans Active Directory.
1.4.3. Connexion à AD à l'aide d'attributs POSIX définis dans Active Directory
Pour de meilleures performances, publiez les attributs POSIX dans le catalogue global AD. Si les attributs POSIX ne sont pas présents dans le catalogue global, SSSD se connecte aux contrôleurs de domaine individuels directement sur le port LDAP.
Conditions préalables
Assurez-vous que les ports suivants de l'hôte RHEL sont ouverts et accessibles aux contrôleurs de domaine AD.
Tableau 1.2. Ports requis pour l'intégration directe de systèmes Linux dans AD à l'aide de SSSD Service Port Protocol Notes DNS
53
UDP et TCP
LDAP
389
UDP et TCP
Kerberos
88
UDP et TCP
Kerberos
464
UDP et TCP
Utilisé par kadmin pour définir et modifier un mot de passe
Catalogue global LDAP
3268
TCP
Si l'option
id_provider = ad
est utiliséeNTP
123
UDP
En option
- Assurez-vous que vous utilisez le serveur du contrôleur de domaine AD pour le DNS.
- Vérifiez que l'heure des deux systèmes est synchronisée. Cela permet à Kerberos de fonctionner correctement.
Procédure
Install the following packages:
# dnf install realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
Configurez le système RHEL local avec le mappage d'ID désactivé à l'aide de la commande
realm join
avec l'option--automatic-id-mapping=no
. La suiterealmd
édite automatiquement tous les fichiers de configuration requis. Par exemple, pour un domaine nomméad.example.com
:# realm join --automatic-id-mapping=no ad.example.com
Si vous avez déjà rejoint un domaine, vous pouvez désactiver manuellement le mappage d'identifiants dans SSSD :
-
Open the
/etc/sssd/sssd.conf
file. -
Dans la section Domaine AD, ajoutez le paramètre
ldap_id_mapping = false
. Supprimez les caches SSSD :
rm -f /var/lib/sss/db/*
Restart SSSD:
systemctl restart sssd
-
Open the
SSSD utilise désormais les attributs POSIX d'AD, au lieu de les créer localement.
Vous devez avoir configuré les attributs POSIX appropriés (uidNumber
, gidNumber
, unixHomeDirectory
, et loginShell
) pour les utilisateurs dans AD.
Verification steps
Affiche les détails d'un utilisateur AD, tel que l'utilisateur administrateur :
# getent passwd administrator@ad.example.com administrator@ad.example.com:*:10000:10000:Administrator:/home/Administrator:/bin/bash
Ressources supplémentaires
-
Pour plus de détails sur le mappage d'ID et le paramètre
ldap_id_mapping
, voir la page de manuelsssd-ldap(8)
.
1.4.4. Connexion à plusieurs domaines dans différentes forêts AD avec SSSD
Vous pouvez utiliser un compte de service géré (MSA) d'Active Directory (AD) pour accéder à des domaines AD situés dans des forêts différentes où il n'y a pas de confiance entre elles.