Délégation et Powershell

Cette article traite de la délégation de droits via Powershell et fait suite à l’article Administrer ses utilisateurs – Partie 1.

Outils utilisés

ActiveRoles Management Shell

Pour la gestion des comptes d’utilisateurs, nous utiliserons les CMD-LET publiées par Quest: http://www.quest.com/powershell/activeroles-server.aspx

Ces outils sont gratuits et simplifient grandement la gestion du domaine en PowerShell, principalement en renvoyant la totalité de l’objet utilisateur AD et non une partie seulement lors des requêtes.

Appel des CMDLET Quest

Une fois installées, les CMDLET Quest doivent être importées via Add-PSSnapin en Powershell:

  • Add-PSSnapin Quest.ActiveRoles.ADManagement


Les CMDLET quest sont maintenant disponibles, tel que:
GET-QADPermission (pour voir les droits positionnés)
SET-QADPermission (pour modifier ces droits)
NEW-AQDGroup (pour créer les groupes nécessaires à la délégation)

Préparation du domaine
Nous souhaitons déléguer les droits de gestion des utilisateurs a notre utilisateur Mon_Esclave_IT (cf. article précédent)
Les meilleurs pratiques conseillent de ne jamais distribuer de droits a un utilisateurs directement, mais de toujours passer via des groupes pour cela.
Ce principe, nommé AGDLP ou AGUDLP est décrit dans l’article suivant:

http://technet.microsoft.com/en-us/library/bb742592.aspx (à partir de la section Creating Groups)

  • Nous créons donc un groupe d’utilisateur dans l’OU Groupes de l’OU Administration
    • New-QADGroup GG_Support_L1 -ParentContainer « OU=Groupes,OU=Administration,OU=Enterprise,DC=Client,DC=LU » -GroupType « Security » -GroupeScope « Global » -SamAccountName GG_Support_L1


Explications:

  • GG_Support_L1 car un groupe doit indiquer rapidement sa portée, ici Global Group (On attribue de droits qu’à des groupes de domain local en suivant AGDLP), décrit ses membres qui sont du Support, et L1 décrit les droits attribués par ce groupe (support level 1)
  • Conteneur parent Groupes dans Administration.

    Pourquoi pas directement dans Groupes mais dans Administration\Groupes?

    Et bien si je stock mes groupes de droits sur l’AD dans une OU sur laquelle je distribue des droits, alors ceux qui reçoivent les droits peuvent les utiliser pour en obtenir plus.

    Imaginez que je donne le droit d’ajouter des membres a un groupes dans une OU contenant « Domain Admins », a votre avis combien de temps avant que le service desk s’ajoute lui-même dans ce groupes?

  • Puis nous ajoutons notre utilisateur Mon_Esclave_IT a ce groupe:
    • ADD-QADGroupMember -Identity GG_Support_L1 -Member Mon_Esclave_IT

      Rien de très particulier lors de cette étape.

  • Les droits devant être géré au niveau du domain local et non via des groupes globaux, nous créons alors un groupe de DL ayant comme membre le groupe GG_Support_L1:
    • New-QADGroup DL_Support_L1 -ParentContainer « OU=Groupes,OU=Administration,OU=Enterprise,DC=Client,DC=LU » -GroupType « Security » -GroupeScope « DomainLocal » -SamAccountName DL_Support_L1
    • ADD-QADGroupMember -Identity DL_Support_L1 -Member DL_Support_L1

Résumé:

Nous avons créé un groupe GG_Support_L1 contenant l’utilisateur Mon_Esclave_IT dans l’OU Groupes de Administration

Ce groupe est membre du groupe DL_support_L1 auquel nous allons appliquer des droits.



Ajout des droits

Il ne reste donc plus qu’à ajouter les droits suivants

  1. Création/Modification/Suppression d’utilisateurs uniquement dans l’OU « Mes utilisateurs » de mon domaine
  2. Possibilité de forcer le changement de mot de passe d’un utilisateur.

Pour la première partie, l’usage de la CMDLET ADD-QADPermision sur l’OU Utilisateurs du domaine, pour créer et effacer les objets de type « User »

  • Add-QADPermission « OU=Utilisateurs,OU=Enterprise,DC=Client,DC=LU » -Account « Client\DL_Support_L1 » -Rights CreateChild,DeleteChild -ApplyTo All -ChildType User


Pour la seconde partie, l’usage du paramétre User-Change-Password est passé avec le commutateur ExtendedRight

  • Add-QADPermission « OU=Utilisateurs,OU=Enterprise,DC=Client,DC=LU » -Account « Client\DL_Support_L1 » -ExtendedRight User-Change-Password -ApplyTo ChildObjects -ApplyToType User


Ceci est un exemple des droits positionnables via PowerShell dans le cadre d’une délégation automatisée de droits, ce qui est très pratique pour standardiser les différentes tâches entre différents domaines. 

Une réflexion au sujet de « Délégation et Powershell »

  1. Ping : Administrer ses utilisateurs | Le mur d'Adrien

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s