3.3. Les différents backends de Winbind

L'utilitaire Winbind proposé par Samba dispose de différents modes de fonctionnement, permettant de stocker les associations RID - UID/GID de différentes manières.

3.3.1. Le backend standard

Lorsque aucun backend n'est spécifié à Winbind, le backend par défaut est utilisé. Celui-ci a les caractéristiques suivantes :

  • associations RID - UID/GID aléatoires et définies à la première requête

  • stockage des associations dans le fichier /var/cache/samba/winbindd_idmap.tdb

  • mise en place très simple, avec uniquement quelques lignes de configuration dans le fichier smb.conf

L'intérêt principal de ce backend est le niveau de configuration qu'il requiert pour fonctionner convenablement: en effet, son intégration avec l'utilitaire authconfig permet de simplifier grandement sa mise en place.

[Note]Note

Ce backend est donc préconisé dans le cas d'une installation dans un environnement relativement basique, avec peu d'utilisateurs ou un seul serveur utilisant Winbind.

[Astuce]Astuce

En cas d'utilisation de ce backend sur un système de clusters, il est nécessaire de partager le dossier /var/cache/samba entre les deux machines, afin d'assurer le bon fonctionnement du fail-over, et de garder les mêmes associations RID - UID/GID.

3.3.2. Le backend idmap_rid

Ce backend reprend les caractéristiques de simplicité et de stockage du backend par défaut, mais propose des associations prévisibles, permettant ainsi un fonctionnement plus souple du système.

[Note]Note

Ce backend est disponible avec Samba en versions 3.0.8 et ultérieures uniquement.

[Attention]Attention

Malgré la présence de Samba respectivement en versions 3.0.9 et 3.0.10 dans la Red Hat Enterprise Linux 3 Update 5 et la Red Hat Enterprise Linux Update 1, le backend idmap_rid n'est pas disponible.

Lors de l'utilisation de ce backend, le RID du compte utilisateur ou du groupe Windows est ajouté à une valeur de base spécifiée dans le fichier smb.conf. Ainsi, l'UID ou le GID résultant de cette association sera toujours le même, ce qui permet d'utiliser ce backend sur différents serveurs d'un même domaine.

Pour le configurer, les lignes suivantes doivent obligatoirement figurer dans le fichier smb.conf :

idmap uid = 10000-1000000
idmap gid = 10000-1000000
idmap backend = idmap_rid:EXAMPLE=1000-500000
allow trusted domains = no

Avec cette configuration, lorsque Winbind rencontrera par exemple un SID avec une valeur de S-1-5-21-34567898-12529001-32973135-1234, il va lui associer l'UID 10000 + 1234 = 11234. Chaque utilisateur dans Active Directory ayant un RID différent, l'association définira des UID différents pour chacun d'entre eux, mais en utilisant le même procédé sur tous les serveurs Samba du domaine.

[Note]Note

Le paramètre allow trusted domains = no est nécessaire afin de garantir la fiabilité des associations. En effet, l'utilisation de ce backend est conditionnée à la présence d'un seul domaine ; dans le cas contraire, deux utilisateurs de domaines différents et disposant du même RID se verraient attribués le même UID par Winbind, posant des problèmes d'authentification.

3.3.3. Le backend LDAP

Ce backend est le mode de fonctionnement le plus interopérable de Winbind. Il propose un stockage des associations RID - UID/GID dans un annuaire LDAP, afin d'obtenir un ensemble cohérent et réutilisable. Il nécessite toutefois la mise en place d'un serveur OpenLDAP au préalable, ce qui rend cette solution plus complexe à configurer que les deux autres.

Pour le configurer, les lignes suivantes doivent obligatoirement figurer dans le fichier smb.conf :

idmap backend = ldap:ldap://samba.example.com
idmap uid = 10000-20000
idmap gid = 10000-20000
ldap admin dn = "cn=Manager,dc=example,dc=com"
ldap suffix = "dc=example,dc=com"
ldap idmap suffix = "ou=Idmap"

De plus, il est nécessaire de configurer l'authentification via LDAP, en utilisant l'utilitaire authconfig. L'authentification n'est plus effectuée via Winbind, mais via LDAP.

Enfin, la base LDAP doit être initialisée avec au moins les éléments suivants :

dn: dc=example,dc=com
objectClass: dcObject
objectClass: organization
dc: example
o: Example, Inc.
description: Posix and Samba LDAP Identity Database

dn: ou=Idmap,dc=example,dc=com
objectClass: organizationalUnit
ou: Idmap