Introduction
Dans nos deux derniers blogues, nous avons :
- Exploré le concept de Microsoft Identity, comprenant Azure AD et Microsoft Authenticator, pour comprendre pourquoi il est essentiel dans la gestion de l’identité et de l’accès.
- Mis en pratique l’implémentation de Microsoft Identity dans une application grâce à Azure Active Directory, en couvrant la configuration, la gestion des rôles, et même l’activation de la double authenfication.
Cette semaine, nous allons aller encore plus loin en abordant le sujet de l’intégration de Microsoft Graph pour automatiser et améliorer la gestion des identités.
Pourquoi Microsoft Graph ?
Microsoft Graph est une API unifiée qui nous permet d’interagir avec l’ensemble des services Microsoft 365, dont Azure Active Directory. En d’autres termes, plutôt que de recourir à différents endpoints pour gérer vos utilisateurs, groupes et ressources, nous passons directement par une API unique.
Exemples d’actions possibles avec Microsoft Graph :
- Créer, mettre à jour et supprimer des utilisateurs dans Azure AD
- Gérer automatiquement l’ajout et la suppression de membres dans des groupes
- Configurer des propriétés avancées (photos de profil, informations de contact, etc.)
- Récupérer des rapports sur l’activité des utilisateurs et la sécurité
Mise en place de Microsoft Graph
1. Enregistrer une application pour Microsoft Graph
- Dans le portail Azure, allez sur Azure Active Directory > Enregistrements d’applications.
- Créez ou réutilisez une application déja existante.
- Notez son CLIENT ID et son TENANT ID.
- Dans la section Autorisations, ajoutez les permissions Microsoft Graph nécessaires (User.Read, Group.ReadWrite.All, etc.).
2. Authentification et autorisation
Pour appeler Microsoft Graph, votre application doit s’authentifier sur Azure AD :
- Utilisez la bibliothèque Microsoft Authentication Library (MSAL) pour obtenir un Access Token.
- Indiquez dans votre code le scope correspondant à Graph (exemple concret :
https://graph.microsoft.com/.default
). - Azure AD renvoie un token JWT qui prouve que votre application est autorisée à appeler Microsoft Graph.
Gérer les utilisateurs et groupes via Microsoft Graph
Exemple concret et simple pour créer un nouvel utilisateur
// Exemple simplifié en C# avec MSAL et Graph SDK
// 1. Obtenir un access token
var app = ConfidentialClientApplicationBuilder.Create(clientId)
.WithClientSecret(clientSecret)
.WithTenantId(tenantId)
.Build();
string[] scopes = new string[] { "https://graph.microsoft.com/.default" };
var authResult = await app.AcquireTokenForClient(scopes).ExecuteAsync();
var graphClient = new GraphServiceClient(
new DelegateAuthenticationProvider((requestMessage) => {
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", authResult.AccessToken);
return Task.CompletedTask;
})
);
// 2. Créer un nouvel utilisateur
var newUser = new User
{
AccountEnabled = true,
DisplayName = "John Doe",
MailNickname = "jdoe",
UserPrincipalName = "jdoe@votre-tenant.onmicrosoft.com",
PasswordProfile = new PasswordProfile
{
ForceChangePasswordNextSignIn = true,
Password = "MotDePasseSecurise123!"
}
};
await graphClient.Users
.Request()
.AddAsync(newUser);
Exemple : Ajouter un utilisateur à un groupe
var groupId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; // ID du groupe
var userId = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"; // ID de l’utilisateur
await graphClient.Groups[groupId].Members.References
.Request()
.AddAsync(new DirectoryObject { Id = userId });
Avantages et scénarios courants dans la majorité des entreprises
- Automatisation des processus normalement gérés par les ressources humaines : Lorsque quelqu’un rejoint ou quitte une organisation, vous pouvez automatiquement créer, mettre à jour ou supprimer ses accès.
- Gestion dynamique des groupes : Basée sur des règles (ex. : département, localisation), la composition des groupes change sans intervention manuelle (Automatiquement).
- Audit et reporting : Vous pouvez récupérer des logs, des informations sur les connexions, et surveiller en temps réel la sécurité de l'entreprise.
Conclusion
Microsoft Graph augmente la puissance et complémente Microsoft Identity en offrant une API unifiée pour gérer, automatiser et sécuriser les identités au sein d’Azure Active Directory. Après avoir découvert, dans les deux derniers blogues, les bases de Microsoft Identity et son implémentation pratique, intégrer Microsoft Graph est la prochaine étape pour une meilleure gestion centralisée et automatisée des utilisateurs et des groupes.
Commentaires1
Intéressant!
Cet article sur Microsoft Identity avec Microsoft Graph est très instructif. Ayant utilisé Auth0 pendant mon parcours, je trouve que ce serait intéressant de voir dans un futur article une comparaison avec d'autres systèmes similaires afin de mieux comprendre leurs avantages respectifs.