14 Mar 2021, 00:00

Vrac sur LDAP / Active Directory

Share

Généralités

DC : Domain Component (ce qui définit le domaine lui-même) OU : Organisation Unit (une organisation à l’intérieur du domaine, décidée par le service informatique ; non obligatoire) CN : Common Name (le nom courant d’un objet, par exemple “myUser”) DN : Distinguished Name (+- un chemin absolu, qui identifie l’objet de manière unique dans le répertoire ; comprend forcément des références aux DC et au CN, et éventuellement aux OU)

Exemple de DN : CN=OpenVPN,OU=OpenVPN,OU=IT,DC=paris,DC=myCompany,DC=com
Il s’agit du nom courant “OpenVPN” (un utilisateur), situé dans l’OU “OpenVPN”, elle-même située dans l’OU “IT”, elle-même située dans le domaine “paris.mycompany.com”

On peut obtenir le DN de n’importe quel objet dans Utilisateurs et ordinateurs Active Directory en faisant un clic-droit sur l’objet -> Éditeur d'attributs, puis en cherchant l’attribut distinguishedName (taper dist au clavier devrait amener dessus).

Recherche dans l’Active Directory depuis Linux

On peut utiliser le logiciel ldapsearch, disponible dans le paquet ldap-utils.

sudo apt install ldap-utils

On utilisera les flags suivants :

-H pour spécifier l'annuaire ldap (ou le serveur AD)
-x pour une authentification simple
-W pour demander le password
-D pour spécifier l'utilisateur utilisé pour se connecter auprès de l'AD ; ce peut être l'adresse mail (user@contoso.com) ou le DN de l'objet
-b pour définir le chemin de base de la recherche ; par exemple DC=paris,DC=myCompany,DC=com
-LLL pour supprimer les commentaires et la version de LDAP de l'affichage des résultats

On peut ensuite définir un ou plusieurs filtres pour sélectionner les objets désirés ; par exemple (sAMAccountName=Administrateur)" pour sélectionner l’objet dont le nom de compte est Administrateur ; on peut passer plusieurs filtres, avec la syntaxe suivante : (&(sAMAccountName=Administrateur)(memberOf=CN=myGroup,OU=Groups,OU=IT,DC=paris,DC=myCompany,DC=com)

Enfin, on peut choisir un attribut à afficher, pour ne récupérer que ce champ dans la liste des résultats. Par exemple "name" pour récupérer le nom du compte.

Ceci nous donne la syntaxe suivante pour rechercher le nom des membres du groupe

ldapsearch -H ldap://192.168.10.101 -x -W -D “CN=OpenVPN,OU=OpenVPN,OU=VCI,DC=boulogne,DC=escda,DC=viseoci,DC=fr” -b “DC=boulogne,DC=escda,DC=viseoci,DC=fr” “(&(memberOf=CN=Utilisateurs du VPN,OU=Groupes,OU=VCI,DC=boulogne,DC=escda,DC=viseoci,DC=fr))” “name”