Cette session a pour but de vous présenter un certain nombre d’actions d’administration réalisables sur votre AD afin d’améliorer son fonctionnement et d’étendre son usage.
3. Thierry Deman
Architecte Sénior chez EXAKIS-NELITE
Office Apps&services MVP (18 awards)
Twitter : t_deman
Audit, Migration, …
Auteur chez ENI (Windows
administration avancée)
• Présentation rapide du Schéma (Classes/Attributs)
• Ajouter de champ dans le catalogue global
• Ajouter un index sur un attribut
• Création/utilisation de partition supplémentaire,
• Nettoyage des permissions dans AD (Par script Powershell)
• Les extensions de schéma
• Extension Exchange (Pourquoi/Pourquoi pas)
• Règles de la création de champs supplémentaires (Inscription)
• Recherche avancée dans AD (DSA.msc), Les recherches
personnalisées (Dans DSA.MSC et ADSIEDIT.MSC)
• L’évolution d’AD et la sécurité
AGENDA DE LA CONFÉRENCE
24 octobre 2019 - PARIS
Identity Days 2019
5. Présentation rapide du Schéma
• Plusieurs outils : Console Schéma (à créer), ADSIEDIT.MSC
• Autres outils: Ldif.exe, browser Ldap (Softerra)
• Classes = Objets (avec notion d’héritage)
• Account, User, Computer,…
• Ensemble d’attributs obligatoires et facultatifs
269 classes sur un AD seul, 649 classes avec Exchange, SFB, … installés
• Attributs = Propriétés
1498 attributs sur un AD seul, 4106 attributs avec Exchange,…
(Classes/Attributs)
Identity Days 2019
24 octobre 2019 - PARIS
Top Person OrganizationalPerson user InetOrgPerson
Computer
Contact
6. Ajout d’un champ dans le catalogue global
Identity Days 2019
24 octobre 2019 - PARIS
7. Ajout de champ dans le catalogue global
• Accès classique
get-aduser -server Localhost:3268 -filter {cond} -Properties *
- Le fait d’indiquer le port 3268 (ou 3269) indique l’utilisation de l’annuaire restreint
du catalogue global. Par défaut, le port 389 connecte au domaine du DC indiqué.
- Recherche en 2 étapes dans le catalogue global (Forêt), puis recherche dans le
domaine correspondant de l’objet.
• Une requête pour trouver le DN de l’objet (et son domaine d’origine)
get-aduser -server localhost:3268 "jdupont"
- Puis une autre requête pour récupérer l’objet (à partir du DN)
get-aduser "CN=Jean DUPONT,CN=Users,DC=MaSociete,DC=Priv" -property EmployeeNumber
Identity Days 2019
24 octobre 2019 - PARIS
Exemple de recherche d’une propriété « EmployeeNumber »
8. Modification du schéma par la console Schéma
• Se créer la console si elle n’existe pas.
• regsvr32 schmmgmt.dll
• Charger la console (mmc.exe , Ajouter le « Snap-in »
Schéma Active directory)
• L’avantage de cette console est la recherche
facile des noms
• Il suffit de cocher la case « répliquer cet attribut… »
et d’appliquer
• Un événement sera logué sur cette modification
avec l’exécutant.
Identity Days 2019
24 octobre 2019 - PARIS
Exemple de recherche d’une propriété « EmployeeNumber »
9. La modification peut aussi se faire en Powershell
• Accès à l’objet dans le schéma:
$a=get-adobject -searchbase "CN=Schema,CN=Configuration,DC=MaSociete,DC=Priv"
-ldapfilter "(lDAPDisplayName=EmployeeNumber)“
• Modification de l’objet dans le schéma
set-adobject $a.DistinguishedName -add @{isMemberOfPartialAttributeSet=$true}
• Accès direct à l’attribut
get-aduser -server localhost:3268 "jdupont" -property EmployeeNumber
Identity Days 2019
24 octobre 2019 - PARIS
Toutes les commandes AD peuvent se faire aussi bien sur la partition du schéma, comme la partition par défaut
10. Liste des champs du catalogue global
• Pour un AD sans Exchange installé :
Un objet de type « InetOrgPerson » contient 27 attributs dont 9 sont dans le CG
Un objet de type « user » contient 156 attributs dont 21 sont dans le CG
• Pour un objet « user » dans un AD avec Exchange et SFB installés
191 attributs dont 57 dans le GC
Identity Days 2019
24 octobre 2019 - PARIS
Toutes les commandes AD peuvent se faire aussi bien sur la partition du schéma, comme la partition par défaut
$a=get-adobject -searchbase "CN=Schema,CN=Configuration,DC=deman,DC=local" -ldapfilter
"(&(objectclass=ClassSchema)(name=user))" -properties maycontain,mustcontain,systemmaycontain,systemmustcontain
$b=$a.maycontain+$a.mustcontain+$a.systemmaycontain+$a.systemmustcontain; echo $b |measure
foreach ($i in $b) { get-adobject -searchbase "CN=Schema,CN=Configuration,DC=deman,DC=local" -ldapfilter
"(&(lDAPDisplayName=$i)(isMemberOfPartialAttributeSet=TRUE))" }
11. Ajouter un index sur un attribut
Identity Days 2019
24 octobre 2019 - PARIS
12. Ajouter un index sur un attribut
• L’indexation est mémorisée dans
l’attribut « Searchflags »
0x1 = Index
0x2 = Index spécifique pour chaque
conteneur/OU
0x4= Autorise l’ANR
0x10= Copie l’attribut (si copie de l’objet)
0x20 = Tuple Index (Améliore l’index si * en
début)
0x40 = VLV Search
Identity Days 2019
24 octobre 2019 - PARIS
Ajout en mode graphique
13. Exemple d’utilisation
• Avant création de l’index
measure-command {foreach ($i in 1..1000) {get-aduser -filter {employeeNumber -like "1234567"}}}
TotalMilliseconds : 4764,79
• Après création de l’index
measure-command {foreach ($i in 1..1000) {get-aduser -filter {employeeNumber -like "1234567"}}}
TotalMilliseconds : 2413,2859
Si l’index est supprimé, on retrouve la durée initiale.
Identity Days 2019
24 octobre 2019 - PARIS
15. Création/utilisation de partition supplémentaire
• Création d’une partition gérée par un premier serveur DNS
dnscmd DC2016 /createdirectorypartition MyCustomPartition.MaSociete.com
• Ajout d’un 2ème serveur DC/DNS gérant la partition
dnscmd DC2 /enlistdirectorypartition MyCustomPartition.MaSociete.com
• Créer un point de connexion
repadmin /kcc DC2016
Identity Days 2019
24 octobre 2019 - PARIS
16. Exemple d’utilisation de cette partition
• Création d’une OU
New-ADOrganizationalUnit -Name Tests -Path "DC=MyCustomPartition,DC=MASOCIETE,DC=PRIV“
• Création d’un contact
New-ADObject -type contact -path 'ou=tests,dc=mycustompartition,dc=MaSociete,DC=Priv' -Name
"Contact1“
• Recherche dans la partition
get-adobject -SearchBase "dc=mycustompartition,dc=MaSociete,DC=Priv" -filter {objectclass -eq
"contact"}
Identity Days 2019
24 octobre 2019 - PARIS
17. Avantages et limitations
• Permet de créer un annuaire logiciel accessible et modifiable par les utilisateurs
et groupes disposant des autorisations adéquates.
• Accès facile par LDAP, et toute application compatible.
(mycustompartition.MaSociete.Priv est résolu par le DNS)
• On peut créer tout type d’objets sauf les « security principals, donc pas
d’utilisateurs » avec mots de passe
Identity Days 2019
24 octobre 2019 - PARIS
19. Nettoyage des permissions dans AD
• Le même type de problème
existe dans les fichiers et les
registres.
• Il peut se cacher dans toutes les
partitions AD (Domain,
Configuration, Schéma, …)
• Pas d’outil pour parcourir et
nettoyer ce type d’information
Identity Days 2019
24 octobre 2019 - PARIS
20. Affichage des permissions dans AD et suppression des ACL inutiles
Outil de recherche et nettoyage.
• Choix du contexte :[/DOMAIN|/CONF|/SCHEMA|/DOMAINDNS|/FORESTDNS|dn
• Affichage des permissions sur chaque OU/CN avec ou sans les objets.
• Affichage et recherche de tous les objets non résolus (Attention, il peut s’agir de
SID provenant de domaines approuvés non accessibles temporairement)
• Suppression uniquement des objets non résolus dans le domaine courant.
Seules les opérations sur le domaine courant sont « sures ». Un SID inconnu, non transformé en nom, peut
correspondre à un domaine non approuvé, un contrôleur de domaine non accessible, etc…
Le script est publié dans la galerie Technet:
https://gallery.technet.microsoft.com/How-to-remove-all-unknown-
9d594f3a?redir=0
Identity Days 2019
24 octobre 2019 - PARIS
23. Les extensions de schéma (Exchange, …)
• Quels sont les risques?
Les risques ne sont jamais au moment de l’ajout, mais de leur 1ère utilisation. (Un seul cas connu)
• Pourquoi les faire?
Ils sont indispensables à certains logiciels.
Ils apportent des classes et des attributs supplémentaires. (ExtensionAttribute…)
Gestion centralisée à partir d’AD pour le mode Hybride verse O365
(Cela permet de synchroniser des informations complémentaires)
• On peut aussi créer ses propres extensions au schéma. (Ce n’est pas réservé aux éditeurs de
logiciels)
Identity Days 2019
24 octobre 2019 - PARIS
24. Règles de la création de champs supplémentaires (Inscription)
• Demander un OID à l’IANA (C’est gratuit)
http://pen.iana.org/pen/PenApplication.page
• Que ce soit pour une application interne ou diffusée
Exemple pour Microsoft
https://ldapwiki.com/wiki/1.2.840.113556
Identity Days 2019
24 octobre 2019 - PARIS
25. Recherche avancée dans AD,
Les recherches personnalisées
Identity Days 2019
24 octobre 2019 - PARIS
26. Recherche avancée dans AD (DSA.msc),
les recherches personnalisées
• Permet de rechercher sur tous les attributs existants
• Permet de vérifier les conditions utilisées par la suite dans une
commande PowerShell
• Peuvent être conservées, exportées, importées
• La vue sur les résultats a les mêmes propriétés qu’une OU
Tous les onglets sont disponibles sur chaque objet (en mode avancé)
Identity Days 2019
24 octobre 2019 - PARIS
27. Exemple de recherche d’un SID
Identity Days 2019
24 octobre 2019 - PARIS
• Tous les champs AD sont accessibles, mais pas forcément visualisés
28. Exemple de récupération d’un filtre
dans une requête Powershell
Identity Days 2019
24 octobre 2019 - PARIS
• Filtre généré par la requête :
(&(&(name=*dupont*)))
• Autre filtre plus complexe:
(&(&(objectCategory=user)(objectClass=user)(
userPrincipalName=*)(name=*dupont*)))
30. L’évolution d’AD (risques,…)
• Pour le moment, AD est quasiment incontournable
• GPO, déploiement, délégation d’administration (Utiliser le Tier-Model)
• Azure AD commence seulement à ajouter la notion d’ « Unités Administratives » qui accueille
seulement des utilisateurs.
• AD est le maillon le plus faible de la chaine
• Ouvert en lecture à toute l’entreprise (Et à tous dès qu’un compte est compromis)
• En partie accessible depuis Internet si ADFS est utilisé (Configurer Smart lockout)
• Peu d’outils de sécurité fournis d’origine.
• Pas de « Secure Score for AD, Exchange»,
• il faut se tourner vers d’autres outils: ALSID, Retina, …
• L’authentification basique, cryptages « faibles », doivent disparaître…
• Notamment dans Exchange, mais aussi HTTP, IMAP, POP, LDAP, …
Identity Days 2019
24 octobre 2019 - PARIS
31. Identity Days 2019
24 octobre 2019 - PARIS
• Quelques Démos en fonction du temps.
• Des questions?
32. Merci à tous nos partenaires !
24 octobre 2019 - PARIS
@IdentityDays #identitydays2019