En visitant ce site, vous acceptez le fait que nous utilisons des cookies.
Accept
Akril.netAkril.net
  • Apple
  • Cloud
    • Amazon AWS
    • Google Cloud Platform
    • Microsoft Azure
  • Google
  • Microsoft
    • Microsoft Azure
    • Microsoft Office
    • Microsoft Office 365
    • Microsoft SQL Server
    • Microsoft System Center
    • Microsoft Windows
    • Microsoft Windows Server
    • PowerShell
  • Linux
  • Sécurité
    • Varonis
  • Geek
    • Bitcoin
    • Citrix
    • Hardware
    • Jeux-vidéo
    • Logiciels et Applications
    • Photographie
    • Raspberry Pi
    • Smartphone
    • Virtualisation
    • Web
    • VMware
  • English
  • A propos
  • Contact
    • Annonceurs
Notification Show More
Latest News
CyberSecurity-Logo
BreachForums : le plus gros vendeur de données illégales en ligne, arrêté par le FBI
Sécurité
Carte-Sim-Logo
Après la nano-SIM, la eSIM s’apprête à remplacer la iSIM
Smartphone
UK-Flag
Disparition de WhatsApp et Signal au Royaume-Uni
Web
Headsets-Logo
Test des casques Nuroum HP20 et Plantronics Blackwire 5220
Hardware
Pourquoi louer un studio photo pour un shooting en famille ?
Photographie
Akril.netAkril.net
Recherche
Follow US
AKRIL.NET - Copyright © 2006-2023. All Rights Reserved.
Akril.net > Cloud Computing > Microsoft Azure > Gestion de vos groupes Azure Active Directory en PowerShell
Microsoft Azure

Gestion de vos groupes Azure Active Directory en PowerShell

thibault
Dernière mise à jour : 20/04/2020
par thibault Published 20 avril 2020
Partager
10 Min Read
Partager

J’ai récemment dû aider un client à gérer les membres de ses groupes au sein d’Azure Active Directory. Mais comme il voulait réaliser des actions massives : ajout en fonction de critères spécifiques – il était exclu de la faire manuellement. Nous avons donc réalisé ces actions en PowerShell.

Etape 0 – Préparation du scénario

Je vous propose un petit scénario de test dans l’article suivant pour voir comment on peut faire cela. Je vais créer un certain nombre d’utilisateurs et de groupes – puis nous allons voir ce que nous pouvons faire en PowerShell.

Dans mon cas, je dispose de plusieurs comptes de test. La problématique a laquelle j’avais été confronté provenait d’une université donc on va reprendre une logique similaire.

J’ai créé plusieurs comptes de test sur le format suivant :

  • prenom.nom.xxxx@domain.tld
    • Dans mon cas, les xxx peuvent être remplacés par « user » pour définir un étudiant, « teacher » pour le compte d’une professeur et enfin « collab » pour un prestataire de service.
Comptes de test Azure AD
Comptes de test Azure AD

J’ai également besoin de créer 3 groupes de tests pour contenir mes étudiants, professeurs et collaborateurs externes.

Groupes de test Azure AD
Groupes de test Azure AD

Objectif : Je vais donc vouloir positionner chacun de mes comptes dans le groupe qui le concerne. A savoir :

  • Group-Collaborators pour tous les prestataires externes – qui ont donc la mention « Collab » dans leur UPN ;
  • Group-Teachers pour les enseignants ;
  • Group-Users pour les étudiants.

Dans un premier temps, nous allons faire cela en PowerShell. Mais nous verrons que nous pouvons également utiliser les groupes dynamiques dans la dernière partie de l’article.

Etape 1 – Intégration d’1 utilisateur à 1 groupe

Avant tout, vous allez avoir besoin du module PowerShell Azure AD sur votre poste de travail. Pour ce faire, installez le en utilisant la commande suivante :

Install-Module AzureAD

Répondez « Yes » pour l’installation du module.

Ensuite, vous devrez vous connecter en PowerShell à votre Azure Active Directory. Pour ce faire, utilisez la commande suivante :

Connect-AzureAD

Vous aurez alors la mire d’authentification Office 365. Identifiez-vous avec un compte qui dispose de suffisamment de privilèges pour gérer les utilisateurs et/ou groupes Azure Active Directory. Dans mon cas, je suis Global Administrator.

Vous pouvez alors utiliser la commande suivante pour voir la liste de vos utilisateurs :

Get-AzureADUser

Et celle-ci pour la liste de vos groupes :

Get-AzureADGroup

Vous devriez avoir le rendu similaire suivant (dans mon cas c’est un tenant de test les résultats sont donc plus limités) :

List des utilisateurs et groupes au sein de mon Azure Active Directory
List des utilisateurs et groupes au sein de mon Azure Active Directory

On retrouve bien tous mes comptes de tests et les groupes que j’ai créé précédemment. 🙂

On peut utiliser la commande Get-AzureADGroupMember avec l’ObjectId du groupe concerné pour obtenir la liste des membres d’un groupe donné. Dans mon cas, on voit que mon groupe « Group-Users » est pour l’instant vide. Aucun retour. 😉

Get-AzureADGroup
Get-AzureADGroup

Pour ajouter un utilisateur comme étant membre d’un groupe nous avons besoin de connaître l’ObjectId de l’utilisateur et du groupe qui sont concernés. A partir de là, on peut utiliser la commande Add-AzureADGroupMember pour intégrer un utilisateur dans un groupe :

Add-AzureADGroupMember -ObjectId 30499fa8-639c-4367-84ea-310dcc1d879c -RefObjectId 50408f51-2af9-477b-9fae-3a55a72c2ca9

Le premier paramètre ObjectId correspond à la référence du groupe tandis que le second paramètre correspond à l’ObjectId de l’utilisateur concerné.

Get-AzureADGroupMember
Get-AzureADGroupMember

On a ajouté un utilisateur à mon groupe. Lorsque l’on exécute à nouveau la commande précédente, on voit bien que désormais je dispose d’un membre. Si vous voulez supprimer un utilisateur d’un groupe, il vous suffit d’utiliser la commande Remove-AzureADGroupMember avec la même logique au niveau des paramètres.

Cela étant dit, nous l’avons fait de manière unitaire. Mais nous voudrions le faire de manière massive pour que tous nos utilisateurs aillent dans le groupe qui leur convient. 😉

Etape 2 – Intégration des utilisateurs dans leurs groupes respectifs en PowerShell

J’ai utilisé le script ci-dessous pour analyser chacun de mes utilisateurs et l’intégrer au groupe qui convient en fonction de ce que j’ai pu détecter dans son adresse email/UPN.

$all_users = Get-AzureADUser

foreach ($user in $all_users)
{
    if ($user.USerPrincipalName -match ".user")
    {
        Write-Host "LOG - Account: $($user.DisplayName) is a user/student - Adding to Group-Users" -ForegroundColor Yellow
        Add-AzureADGroupMember -ObjectId (Get-AzureADGroup -SearchString "Group-Users").ObjectId -RefObjectId $user.ObjectId
    }

    elseif ($User.UserPrincipalName -match ".teacher")
    {
        Write-Host "LOG - Account: $($user.DisplayName) is a teacher - Adding to Group-Teachers" -ForegroundColor Green
        Add-AzureADGroupMember -ObjectId (Get-AzureADGroup -SearchString "Group-Teachers").ObjectId -RefObjectId $user.ObjectId
    }

    elseif ($User.UserPrincipalName -match ".collab")
    {
        Write-Host "LOG - Account: $($user.DisplayName) is a Collaborator - Adding to Group-Collaborators" -ForegroundColor Cyan
        Add-AzureADGroupMember -ObjectId (Get-AzureADGroup -SearchString "Group-Collaborators").ObjectId -RefObjectId $user.ObjectId
    }

    else
    {
        Write-Host "LOG - Account: $($user.DisplayName) is corresponding to nothing managed. Not added to nothing." -ForegroundColor Red
    }   
}

Je récupère tous mes utilisateurs et pour chacun d’entre eux je regarde si je trouve la mention : .teacher, .user, .collab dans l’adresse. En fonction de cette lecture, j’ajoute l’utilisateur concerné au groupe qui convient.

En revanche, si je ne vois rien qui convienne alors je n’ajoute cet utilisateur nul part. Une fois le script exécuté, j’ai le retour suivant :

Exécution du script PowerShell
Exécution du script PowerShell

On voit donc bien que tous mes comptes de test ont bien été ajoutés dans les groupes pertinents. On peut également vérifier le résultat sur l’interface graphique de Azure Active Directory pour chaque groupe concerné.

Groupe Azure Active Directory - Etudiants
Groupe Azure Active Directory – Etudiants
Groupe Azure Active Directory - Enseignants
Groupe Azure Active Directory – Enseignants
Groupe Azure Active Directory - Prestataires
Groupe Azure Active Directory – Prestataires

C’est terminé. 🙂

Je ne rentre pas dans les détails du script. Il y a plusieurs façons de faire et vous devrez certainement l’adapter en fonction de vos contraintes. En cas de besoin, utilisez la zone commentaires pour vos questions.

Maintenant, sachez que l’on peut faire mieux que du PowerShell dans le cas précis… Et cela nous amène à l’étape 3. 😉

Etape 3 – Utilisation des groupes dynamiques

Depuis un moment maintenant, O365 et Azure Active Directory vous permettent de créer ce que l’on appelle des groupes dynamiques. Ces groupes dynamiques se mettent – et surtout, se maintiennent à jour – en fonction des conditions que vous configurez !

Ce n’est pas le cas de notre script PowerShell que vous devrez exécuter à nouveau régulièrement.

Rendez-vous dans Azure Active Directory, puis tentez de créer un nouveau groupe. Sauf, qu’au moment de choisir l’option Membership type – choisissez Dynamic User.

Création d'un groupe Azure Active Directory dynamique
Création d’un groupe Azure Active Directory dynamique

Cliquez ensuite sur Add dynamic query pour définir les conditions à vérifier pour être automatiquement ajouté à ce groupe Azure Active Directory.

Création de votre query
Création de votre query

Vous pouvez écrire la requête tout seul si vous êtes à l’aise avec ce type d’outils. Sinon, le plus simple est encore d’utiliser les menus déroulants qui sont à votre disposition pour définir votre condition.

Si je reprends un cas précédemment évoqué, les enseignants, alors je dois sélectionner les options suivantes :

  • Property : userPrincipalName
  • Operator : Match
  • Value : .teacher

Et le mieux, c’est que vous pouvez tester votre requête ! 🙂

Pour ce faire, utilisez l’onglet Validate Rules (Preview). Sélectionnez tous nos utilisateurs de test sur la droite. Vous verrez que cette règle ne va s’appliquer qu’aux comptes qui possèdent la mention « .teacher« .

Test de votre query
Test de votre query

On voit clairement que notre requête fonctionne. Seuls les comptes concernés sont détectés par notre requête. 🙂

Il ne vous reste plus qu’à sauvegarder et finaliser la création de ce groupe.

L’intérêt de cette seconde méthode et que le calcul des membres de votre groupe est automatique. Il n’est pas nécessaire d’exécuter à nouveau un script ou quoique ce soit. Si vous créez un nouvel utilisateur avec la même logique, alors il sera intégré au groupe automatiquement. Inversement, si un utilisateur ne respecte plus la requête, alors il sera retiré du groupe concerné.

Plus d’infos sur les groupes dynamiques en suivant ce lien.

Pour toute question, n’hésitez pas à utiliser la zone des commentaires ci-dessous ! 🙂

TAGS : Azure, Azure Active Directory, Groupes dynamiques
Partager cet article ?
Twitter Whatsapp Whatsapp LinkedIn Telegram Email Copy Link
Vous en pensez quoi ?
Love0
Happy1
Embarrass0
Sad0
Angry0
Leave a comment

Publicités

Auteur

Cloud Solution Architect – Engineering (aka. Sr. Premier Field Engineer – PFE) @ Microsoft dans les domaines de l’infrastructure, du cloud et de la sécurité. Je suis également passionné par tout ce qui concerne les nouvelles technologies ainsi que la photographie ! Bonne visite ! 🤓

Follow @akril
Girl in a jacket

Dernière vidéo YouTube

https://youtu.be/-hQdddZeaNs

Certifications

Certifications

Publicités

Partenaires

Autres articles

Azure-Logic-App-Logo
Microsoft AzureCloud Computing

Azure Logic App : publier automatiquement un article WordPress sur Twitter et LinkedIn

thibault thibault 11 février 2023
OpenAI-Logo-Blog
Microsoft AzureCloud ComputingWeb

ChatGPT : innovation et conséquences

thibault thibault 11 février 2023
Microsoft AzureCloud ComputingFeatured

Création d’un environnement de formation avec Azure Lab Services

thibault thibault 29 décembre 2022
Microsoft AzureMicrosoft Office 365

Comparaison entre Azure AD Connect et Cloud Sync

thibault thibault 22 décembre 2022

Derniers articles sur Microsoft Azure

Azure-Logic-App-Logo
Azure Logic App : publier automatiquement un article WordPress sur Twitter et LinkedIn
Microsoft Azure Cloud Computing
OpenAI-Logo-Blog
ChatGPT : innovation et conséquences
Microsoft Azure Cloud Computing Web
Création d’un environnement de formation avec Azure Lab Services
Microsoft Azure Cloud Computing Featured

Effectuer une recherche ?

Me contacter

Pour me contacter, il vous suffit d’utiliser le formulaire disponible sur la page de contact.

Derniers articles sur Varonis

Classify and locate important documents
English Varonis
Execute a PowerShell script in Varonis DatAlert
English Varonis

Derniers articles sur Citrix

Créer des comptes et groupes de tests dans Active Directory
PowerShell Microsoft Windows Server
Rechercher dans les GPO de votre Active Directory avec PowerShell
PowerShell
winget : un gestionnaire de paquets sur Windows 10
PowerShell
Akril.netAkril.net
Follow US

AKRIL.NET - Copyrights © 2006-2023

Welcome Back!

Sign in to your account

Lost your password?