Active Directory
Généralités
Un annuaire est systèmes de stockage de données, dérivé des BDD hiérarchisées, permettant en particulier de conserver les données pérennes (peu mises à jour; historiquement sur une base annuelle, ce qui explique le nom "annuaire"). Cela peut être des coordonnées de personnes, des partenaires, des clients, des fournisseurs, des adresses électroniques... La norme utilisée est LDAP (Lightweight Directory Access Protocol) : c'est une structure arborescente, dont chaque noeud est constitué d'attrivuts associés à des valeurs (on a une notion de classes et d'attributs).
Objectif principaux d'AD
- Partage des informations d'annuaire
- Centralisation de l'authentification avec le SSO (Single Sign On)
- Collaboration et partage de ressources (dossiers, imprimantes...)
- Mise en place d'applicatifs (exchange)
- Déploiement de logiciels.
AD a cependant de la concucrrence :
- NetWare (Novel), plus supporté depuis 2010
- Sun Java System Directory Server (pas de màj depuis 2011)
- Et les solutions Opensource :
- OpenLDAP
- FusionDirectory
- PhpLDAPAdmin
- Apache Directory Studio
AD reste cependant largement leader du marché, et c'est un des 3 outils phare de Microsoft.
Objets, Domaines, Forêts
D'après : https://www.youtube.com/watch?v=nhW-0qZzjy4
Dans ses annuaires, AD regroupe des objets. On peut citer trois types d'objets :
- Les utilisateurs (des personnes)
- Les ressources (éléments matériels : PC, imprimante...)
- Les groupes (listes d'utilisateurs établies pour attribuer des droits ou des services).
Les objets sont organisés en groupes et en sous-groupes. Les objets sont rassemblés dans des domaines, qui sont des entités autonomes de gestion (généralement représenté par un triangle). Au sein d'un domaine, les objets sont regroupés en OU (Unités d'Organisation), les cercles dans le triangle). Les OUs peuvent être des ressources, des métiers, des secteurs... Enfin, on parle d'arborescence AD : un arbre AD représente un domaine et toutes ses ramifications, soit ses domaines enfants. Une forêt est un ensemble d'arbres, qui comprend un domaine racine (root domain), mais aussi ses domaines enfants. Pour que les utilisateurs d'un domaine puissent accéder aux ressources d'un autre domaine, AD utilise des relations d'approbation. Elles peuvent être de nature multiple : intraforêt, interforêt, inter-sous-domaines de plusieurs forêts. Un utilisateur d'un domaine peut avoir des autorisations dans n'importe quel domaine de la forêt.
Quelques informations en vrac
La catalogue global
On a un contrôleur de domaine, qui conserve une copie complète de tous les objets de l'annuaire de son domaine, ainsi qu'une copie partielle de tous les objets d'une forêt. C'est utile pour la recherche. Le premier DC installé au sein d'une forêt est automatiquement serveur de catalogue global; il peut y avoir un seul catalogue global pour plusieurs domaines, mais il faut moins un catalogue global par forêt.
Niveaux fonctionnels de domaine et de forêt
Les niveaux de domaine et de forêt permettent d'activer des fonctionnalités à l'échelle d'un domaine ou d'une forêt dans l'environnement des services de domaine AD (AD DS). Différents niveaux de fonctionnalités des domaines et des forêts sont disponibles, selon votre environnement. L'augmentation d'un niveau fonctionnel de "WinServ 2003" à "Windows 2008" permet par exemple d'affiner la stratégie de mots de passe.
UPN (User Pincipal Name)
Il s'agit du nom d'utilisateur utilisé lors de l'authentification. Il est unique dans toute la forêt, et est composé de 2 parties distinctes séparées par le caractère @ :
- Le préfixe UPN (par défaut le samaccountname)
- Le suffixe UPN (par défaut le nom de domaine).
Il est par ailleurs possible de changer le préfixe et d'ajouter un suffixe de façon à ce que le login de l'utilisateur soit son adresse mail : changer l'UPN, ce n'est pas changer le samaccountname, et on peut d'ailleurs le changer sans impacter la session utilisateur, contrairement au samaccountname.
AD et la virtualisation
AD date d'avant la virtualisation, et à l'époque le processus de réplications ne prenait pas en compte le rollback que l'on peut faire aujourd'hui avec des VM. Il ne faut donc jamais faire de restauration d'image d'un DC, sinon on aura une désynchronisation de la base AD entre les différents serveurs. Ce problème a été résolu avec l'arrivée d'Hyper-V et WinServ 2012.
Le Schéma Active Directory
Le schéma est au coeur d'AD. Il change rarement, mais il faut comprendre son fonctionnement : lorsque l'on va créer un objet, celui-ci sera validé ou non selon les informations qui lui seront affectées avant d'être écrit dans la base AD.
Le schéma contient des définitions formelles de chaque classe d'objet (OU, ordinateur...) de la forêt AD. Il contient aussi des définition formelles de chaque attribut (givenname, mail...).
Par exemple :
- La classe User est le modèle permettant la création d'un compte utilisateur. Un compte utilisateur a des attributs qui le caractérisent :
- givenname
- upn
- etc
- On peut ici faire alors le parrallèle avec la POO.
Outil de gestion de schéma
Il s'agit d'un composant logiciel qui permet de gérer le schéma AD. Pour l'utiliser, il faut :
- Exécuter la commande "regsvr32 schmmgt.dll"
- Ouvrir la "MMC" (Microsoft Management Console), dispo depuis le menu démarrer
- Ajouter le composant logiciel enfichable "Schéma Active Directory"
- On peut ensuite accéder au schéma...
Attention aux erreurs de modifications ! Il faut bien comprendre ce que l'on modifie. Cela peut entraîner une perte de données. Seuls les membres du groupe "Administrateurs du schéma" peuvent effectuer ces modifications.
Les étapes d'un ajout d'attribut pour les comptes utilisateurs
- Création du nouvel attribut avec l'outil de gestion du schéma
- Dans les propriétés de la classe "user", ajout de l'attribut facultatif
- Ouvrir "Utilisateurs et ordinateurs AD"
- Afficher les fonctionnalités avancées
- Dans l'onglet "Éditeur d'attributs", le nouvel attribut est présent.
Classes et attributs
Dans le gestionnaire du schéma on retrouve de dossiers : classes et attributs. Quand on choisit une classe, on peut voir ses attributs. C'est le schéma Active Directory qui définit la structure des objets logiques. Une classe contient une listes d'attributs, qui peuvent obligatoires ou facultatifs. Chaque classe, en plus d'une description et d'un nom commun, possède un identifiant X.500, qui est assigné par l'ISO (et est obligatoire et unique dans le monde entier); il a aussi un type (entier, booléen...).
La structure d'Active Directory
Structure Logique
AD pouvant contenir des millions d'objets, il faut les hiérarchiser. AD a donc une structure logique, notamment définie par le schéma AD. On partira ici du composant le plus élémentaire (l'objet) au plus global (la forêt).
Les objets
Ce sont les composants élémentaires dont les classes sont les modèles. Les plus courants sont :
- Utilisateurs
- Ordinateurs
- Groupes de sécurité
- OU
- Imprimantes
Les OU
Ce sont des conteneurs d'objets, qui permettent :
- D'organiser les objets
- La simplification de la recherche
- D'appliquer des GPO
- De créer des délégations d'autorité.
Les domaines (ou noms de domaines)
- C'est une feuille de l'arborescence du domaine : mydomain.info, student.mydomain.info...
- Il est symbolisé par un triangle
- C'est une frontière administrative pour l'application de règles aux utilisateurs et aux ordinateurs, c'est pour ça qu'il contient un groupe d'admins du domaine
- C'est une frontière de réplication pour la synchronisation d'information entre contrôleurs de domaine.
Les arborescences de domaine
- C'est un ensemble de domaines partageant le même suffixe :
- www.google.fr, mail.google.fr et google.fr font partie de la même arobrescence de domaine (c'est des sous-domaines, quoi...)
- Tous les domaines de l'arborescence sont liés par des relations parents-enfants.
Les forêts AD
- C'est le niveau de hiérarchie le plus global; il représente une entreprise.
- C'est la structure hiérarchique d'une ou plusieurs arborescences de domaines indépendantes :
- Ayant le même schéma
- Ayant le même groupe Administrateurs d'Entreprise et Administrateurs du Schéma.
Relations d'approbation
Une relation d'approbation (que je simplifierais ici en ra) permet aux utilisateurs d'un domaine d'accéder aux ressources d'un autre domaine. Les ra ont une direction : du domaine qui autorise l'accès à ses ressources (le domaine autorisé à approuver) vers le domaine dont les objets accèdent aux ressources (domaine approuvé). Une ra a des carctéristiques :
- Une direction (uniou bidirectionnelle)
- Une transitivité : Elle est à oui ou non, et on a de la transitivité si on a une relation du type : A approuve B qui approuve C, donc A approuve C.
- Automatique ou manuelle : elles peuvent être créées automatiquement par le système (relation parent-enfant...).
Structure Physique
Plus simple que la structure logique, on a ici que 2 niveaux : le DC et le site. Une bonne strucutre physique permet d'optimiser le trafic en déterminant ou et quand se produit le trafic de connexions et de réplications.
Le DC
C'est un serveur, qui ne peut gérer qu'un seul domaine. Il stocke et réplique des objets dans sa forêt.
Les sites
Par défaut, le site créé est "Default-First-Site-Name". On gère les site dans le composant logiciels Sites et Services AD. Pourquoi créer un site :
- Les DC au sein d'un site communiquent fréquemment (toutes les 30 secondes)
- La création d'un site permet l'optimisation de la bande passante (toutes les 180 mn).
- On est amené à créer des sites selon la nature du lien (Selon la bande passante, pas suivant la distance géographique).
Les partitions de BDD AD
Chaque DC contient des partitions AD : Schéma (règle de création / manipulation d'objets), Configuration (Informations sur la structure AD), Domaine (Informations sur les objets spécifiques au domaine), Application (Informations sur les applications)...
La réplication entre DC permet la tolérance aux pannes, et elle consiste à synchroniser les données entre les DC. On a 2 types de réplication :
- Intrasite : Entre DC connectés par des liens LAN, par défaut toutes les 30 secondes
- Intersites : Entre DC séparés par une liaison lente, par défaut toutes les 180 mn.
Les chemins de réplication dépendent du type de partition répliquée.
Rôles FSMO
- Chaque contrôleur de domaine (DC) peut être utilisé pour modifier les objets du domaine. Des processus de réplication permettent d’assurer la cohérence des données.
- On parle de systèmes multimaîtres
- Cependant, 5 rôles sont attribués à un seul maître. On appelle cela les rôles FSMO :
What happens when a user logs on to an AD domain?
- The Locator is initiated on the client computer as a remote procedure call (RPC) to the local Net Logon service.
- The client collects the information that is needed to select a domain controller and passes the information to the Net Logon service.
- The Net Logon service on the client computer uses the collected information to build a query to send to DNS to identify the appropriate domain controller.
- The Net Logon service on the client computer sends a datagram to the discovered domain controllers.
- The directory service intercepts the query and passes it to the Net Logon service on the domain controller.
- The Net Logon service on the domain controller looks up the client IP address in its subnet-to-site mapping table by finding the subnet object that most closely matches the client IP address and then returns the following information to the client: the name of the site in which the client is located, or the site that most closely matches the client IP address; the name of the site in which the current domain controller is located; and a bit that indicates whether the found DC is located in the site closest to the client.
- The client inspects the information to determine whether it should try to find a better domain controller. The decision is made as follows: If the returned domain controller is in the closest site, the client uses this domain controller; If the client has found a DC in the site in which the DC claims the client is located, the client uses this domain controller; If the DC is not in the closest site, the client updates its site information and sends a new DNS query to find a new DC in the site. If the second query is successful, the new DC is used. If the second query fails, the original DC is used.
- If the domain that is being queried by the client is the same as the domain to which the computer is joined, the site in which the computer resides is stored in the registry on the client computer.
- After the client locates a DC, the domain controller entry is cached. If the domain controller is not in the optimal site, the client flushes the cache after fifteen minutes and discards the cache entry. It then attempts to find an optimal domain controller in the same site as the client.
How to find out a user's DN ?
source To find the user and group base DN, you can run a query from any member server on your Windows domain.
To find the User Base DN: - Open a Windows command prompt. - Type the command: dsquery user -name <known username> (Example: If I were searching for all users named John, I could enter the username as John* to get a list of all users who's name is John) - The result will look like: "CN=John.Smith,CN=Users,DC=MyDomain,DC=com" - In Blue Coat Reporter's LDAP/Directory settings, when asked for a User Base DN, you would enter: CN=Users,DC=MyDomain,DC=com
To find the Group Base DN:
- Open a Windows command prompt
- Type the command: dsquery group -name <known group name>.
(Example: If I were searching for a group called Users, I could enter the group name as Users* to get a list of all groups who's name contains "Users")
- The result will look like: "CN=Users,CN=Builtin,DC=MyDomain,DC=com"
- In Blue Coat Reporter's LDAP/Directory settings, when asked for a User Base DN, you would enter: CN=Users,CN=Builtin,DC=MyDomain,DC=com.
Vérifier l'état de la réplication
Voici les commandes à lancer dans un cmd:
repladmin /replsummary #Voir le résumé repladmin /Queue #Voir les élements en file d'attente