Autorisation et API de sécurité Microsoft Graph
Les données de sécurité accessibles via l’API de sécurité Microsoft Graph sont sensibles et protégées par les autorisations et les rôles Microsoft Entra.
L’API de sécurité Microsoft Graph prend en charge deux types d’autorisation :
Autorisation au niveau de l’application : Il n’existe aucun utilisateur connecté (par exemple, un scénario SIEM). Les autorisations accordées à l’application déterminent l’autorisation.
Remarque
Cette option peut également prendre en charge les cas où les Access Control en fonction du rôle (RBAC) sont gérés par l’application.
Autorisation déléguée par l’utilisateur : Un utilisateur membre du locataire Microsoft Entra est connecté. L’utilisateur doit être membre d’un rôle d’administrateur limité d’ID Microsoft Entra (Lecteur de sécurité ou Administrateur de la sécurité) en plus de disposer des autorisations requises pour l’application.
Si vous appelez l’API de sécurité Microsoft Graph à partir de l’Afficheur Graph :
L’administrateur du locataire Microsoft Entra doit accorder explicitement le consentement pour les autorisations demandées à l’application Graph Explorer.
L’utilisateur doit être membre du rôle Administrateur limité lecteur de sécurité dans l’ID Microsoft Entra (Lecteur de sécurité ou Administrateur de la sécurité).
Remarque
L’Explorateur Graph ne prend pas en charge l’autorisation au niveau de l’application.
Si vous appelez l’API de sécurité Microsoft Graph à partir d’une application personnalisée ou de votre propre application :
- L’administrateur du locataire Microsoft Entra doit explicitement donner son consentement à votre application. Ceci est requis à la fois pour l'autorisation au niveau de l'application et pour l'autorisation déléguée par l'utilisateur.
- Si vous utilisez l’autorisation déléguée de l’utilisateur, l’utilisateur doit être membre du rôle Lecteur de sécurité ou Administrateur limité administrateur de la sécurité dans l’ID Microsoft Entra.
Gérer l'autorisation dans les applications client de l’API de sécurité
Les données de sécurité fournies via l’API de sécurité Microsoft Graph sont sensibles et doivent être protégées par des mécanismes appropriés d’authentification et d’autorisation. Le tableau suivant répertorie les étapes pour vous inscrire et créer une application cliente ayant accès à l’API de sécurité Microsoft Graph.
Qui | Action |
---|---|
Développeur d'application ou propriétaire | Inscrire l'application en tant qu'application d'entreprise. |
Administrateur client | Accorder des autorisations à l'application. |
Administrateur client | Attribuer des rôles aux utilisateurs. |
Développeur d’applications | Se connecter en tant qu’utilisateur et utiliser l’application pour accéder à l’API de sécurité Microsoft Graph. |
L'enregistrement de l'application définit uniquement les autorisations dont l'application a besoin pour s'exécuter. Il n’accorde PAS ces autorisations à l’application.
L’administrateur du locataire Microsoft Entra DOIT accorder explicitement les autorisations à l’application. Cela doit être fait par client et doit être effectué chaque fois que les autorisations d’application sont modifiées dans le portail d’inscription de l’application.
Par exemple, supposons que vous disposez d’une application, de deux locataires Microsoft Entra, T1 et T2, et de deux autorisations, P1 et P2. Voici le processus d’autorisation :
L’application enregistre pour demander la permission P1.
Lorsque les utilisateurs du locataire T1 obtiennent un jeton Microsoft Entra pour cette application, le jeton ne contient aucune autorisation.
L’administrateur Microsoft Entra du locataire T1 accorde explicitement des autorisations à l’application. Lorsque les utilisateurs du locataire T1 obtiennent un jeton Microsoft Entra pour l’application, celui-ci contient l’autorisation P1.
Lorsque les utilisateurs du locataire T2 obtiennent un jeton Microsoft Entra pour l’application, le jeton ne contient aucune autorisation, car l’administrateur du locataire T2 n’a pas encore accordé d’autorisations à l’application. Une autorisation doit être accordée par client et par application.
L'application a son inscription modifiée pour exiger maintenant des autorisations P1 et P2.
Lorsque les utilisateurs du locataire T1 obtiennent un jeton Microsoft Entra pour l’application, celui-ci contient uniquement l’autorisation P1. Les autorisations accordées à une application sont enregistrées en tant qu’instantanés de ce qui a été accordé ; ils ne changent pas automatiquement après la modification de l’inscription de l’application (autorisation).
L’administrateur de client T2 octroie des autorisations P1 et P2 à l’application. Désormais, lorsque les utilisateurs du locataire T2 obtiennent un jeton Microsoft Entra pour l’application, le jeton contient les autorisations P1 et P2.
Remarque
Les jetons Microsoft Entra pour l’application dans le locataire T1 et l’application dans le locataire T2 contiennent des autorisations différentes, car chaque administrateur client a accordé des autorisations différentes à l’application.
Pour que l'application fonctionne à nouveau avec client T1, l’administrateur de client T1 doit autoriser explicitement les autorisations P1 et P2 à l’application.
Inscrire une application à l’aide du point de terminaison de la plateforme d’identités Microsoft
Pour inscrire une application au point de terminaison de la plateforme d’identités Microsoft, il vous faut :
- Nom de l’application : Chaîne utilisée pour le nom de l’application.
- URL de redirection : URL où la réponse d’authentification de l’ID Microsoft Entra est envoyée. Pour commencer, vous pouvez utiliser la page d’accueil de test client web app.
- Autorisations requises : Autorisations requises par votre application pour pouvoir appeler Microsoft Graph.
Pour enregistrer votre application :
Accédez au portail d’enregistrement des applications Azure et connectez-vous.
Remarque
Vous n’êtes pas obligé d’être un administrateur de locataire. Vous serez redirigé vers la liste Mes applications .
Sélectionnez Nouvelle inscription.
Sur la page d’inscription de la nouvelle application, saisissez une valeur pour Nom et sélectionnez les types de comptes que vous voulez prendre en charge. Dans le champ URI redirigée, entrez l’URL de redirection.
Sélectionnez Enregistrer pour créer l’application et afficher sa page de présentation. *
Accéder à la page de l’application Autorisations de l’API.
Sélectionnez Ajouter une autorisation, puis sélectionnez Microsoft Graph dans le menu volant. Sélectionnez Autorisations déléguées. Utilisez la zone de recherche pour rechercher et sélectionner les autorisations requises. Pour obtenir la liste des autorisations, reportez-vous aux autorisations de sécurité.
Remarque
Le Microsoft Graph API de sécurité requiert le *. Étendue Read.All pour les requêtes GET et *. Étendue ReadWrite.All pour les requêtes PATCH/POST/DELETE.
Autorisation Entité Demandes prises en charge SecurityActions.Read.All • securityActions (préversion) GET SecurityActions.ReadWrite.All • securityActions (préversion) GET, POST SecurityEvents.Read.All • alerts
• secureScores
• secureScoreControlProfilesGET SecurityEvents.ReadWrite.All • alerts
• secureScores
• secureScoreControlProfilesGET, POST, PATCH ThreatIndicators.ReadWrite.OwnedBy • tiIndicator (préversion) GET, POST, PATCH, DELETE Sélectionnez Ajouter des autorisations.
Enregistrez les informations suivantes :
- ID de l’application (client)
- URL de redirection
- Liste des autorisations requises
*Windows Defender Advanced Threat Protection (WDATP) nécessite des rôles d’utilisateur supplémentaires que ceux requis par l’API de sécurité Microsoft Graph ; Par conséquent, seuls les utilisateurs des rôles WDATP et API de sécurité Microsoft Graph peuvent avoir accès aux données WDATP. L’authentification de l’application uniquement n’est pas limitée par ce problème. Par conséquent, nous vous recommandons d’utiliser un jeton d’authentification de l’application uniquement.
Pour plus d’informations, voir Inscrire votre application sur la Plateforme d’identités Microsoft.
Accorder des autorisations pour une application
L’inscription d’application définit uniquement l’autorisation requise par l’application ; il n’accorde pas ces autorisations à l’application. Un administrateur de locataire Microsoft Entra doit accorder explicitement ces autorisations en effectuant un appel au point de terminaison de consentement administrateur. Pour plus d’informations, voir utiliser le point de terminaison consenti de l'administrateur..
Pour accorder des autorisations pour une application, vous devez :
- ID d’application : ID d’application à partir du portail d’inscription des applications Azure.
- URL de redirection : Chaîne que vous définissez dans le portail d’inscription des applications Azure pour la réponse d’authentification.
Pour accorder les autorisations :
Dans un éditeur de texte, créez la chaîne d'URL suivante :
https://login.microsoftonline.com/common/adminconsent?client_id=<Application Id>&state=12345&redirect_uri=<Redirect URL>
Dans un navigateur web, accédez à cette URL et connectez-vous en tant qu’administrateur client. La boîte de dialogue affiche la liste des autorisations requises par l'application, comme indiqué dans le portail d'enregistrement des applications. Sélectionnez OK pour accorder ces autorisations à l’application.
Remarque
Cette étape accorde des autorisations à l’application, et non aux utilisateurs. Cela signifie que tous les utilisateurs appartenant au locataire Microsoft Entra qui utilisent cette application se verront accorder ces autorisations, même les utilisateurs non administrateurs.
Attribuer des rôles Microsoft Entra aux utilisateurs
Une fois qu’une application dispose d’autorisations, toutes les personnes ayant accès à l’application (c’est-à-dire les membres du locataire Microsoft Entra) reçoivent les autorisations accordées. Pour protéger davantage les données de sécurité sensibles, l’API de sécurité Microsoft Graph exige également que les utilisateurs se voient attribuer le rôle Lecteur de sécurité de l’ID Microsoft Entra. Pour plus d’informations, consultez Autorisations de rôle d’administrateur dans l’ID Microsoft Entra et Attribuer des rôles d’administrateur et de non-administrateur aux utilisateurs avec l’ID Microsoft Entra.
Remarque
Vous devez être un administrateur client pour effectuer cette étape.
Assigner un rôle à un utilisateur :
- Connectez-vous au Centre d'administration Microsoft 365.
- Développez le menu >Identité, développez Utilisateurs>, sélectionnez Tous les utilisateurs.
- Sélectionnez l’utilisateur.
- Sélectionnez les rôles attribués, puis Ajouter une affectation.
- Sélectionnez Lecteur de sécurité, puis cliquez sur Ajouter.
Créer un code d’authentification
Pour créer un code d’authentification, vous devez :
- ID d’application : ID d’application du portail d’inscription d’application.
- URL de redirection : URL où la réponse d’authentification de l’ID Microsoft Entra est envoyée. Pour commencer, vous pouvez utiliser https://localhost ou la page d’accueil de test client web app.
- Clé d’application (facultatif) : Clé de l’application. Cela s'applique lorsque vous développez une application qui utilisera du code d'authentification uniquement pour l'application (c'est-à-dire ne prendra pas en charge l'authentification déléguée par l'utilisateur).
Le tableau suivant répertorie les ressources que vous pouvez utiliser pour créer un code d’authentification.
Pour les applications qui n’utilisent pas des bibliothèques existantes, voir accéder au nom d’un utilisateur.
- Obtenez un code à partir de l’ID Microsoft Entra. La requête à appeler contient un paramètre pour l'ID d'application, l'URL de redirection et les autorisations requises.
- Utilisez le code pour obtenir un jeton d’accès.
Si vous utilisez la bibliothèque OpenId Connect, consultez Authentification à l’aide de Microsoft Entra ID et OpenID Connect et appelez app.UseOpenIdConnectAuthentication()
.
Remarque
Si vous demandez des jetons d’authentification délégués par l’utilisateur, le paramètre de la bibliothèque est Étendues demandées. Utilisez User.Read pour ce paramètre au lieu de ce dont a besoin l'application enregistrée. Le paramètre d’étendues demandées n’affecte pas les autorisations contenues dans les jetons d’authentification renvoyés. Ceux-ci sont déterminés par les autorisations que l'administrateur du client a accordées à l'application.
Par exemple, si vous utilisez la bibliothèque .NET MSAL, appelez comme suit :
var accessToken = (await client.AcquireTokenAsync(scopes)).AccessToken;
Remarque
Cet exemple doit utiliser l’autorisation la moins privilégiée, telle que User.Read. Toutefois, le jeton d'accès renvoyé peut contenir des autorisations qui ont été accordées par l’administrateur client pour le client utilisateur actuel, par exemple, User.Read.All ou User.ReadWrite.All.
Un jeton (chaîne) est retourné par l’ID Microsoft Entra qui contient vos informations d’authentification et les autorisations requises par l’application. Affectez ce jeton à l’en-tête HTTP comme un jeton porteur, comme illustré dans l’exemple suivant.
request.Headers.Authorization = new AuthenticationHeaderValue("bearer", accessToken);
Microsoft Graph validera les informations contenues dans ce jeton et accordera ou refusera l’accès.
Pour afficher les revendications contenues dans le jeton retourné, utilisez la bibliothèque NuGet System.IdentityModel.Tokens.Jwt.
JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler();
var securityToken = tokenHandler.ReadToken(accessToken) as JwtSecurityToken;
La réponse de Microsoft Graph contient un en-tête appelé client-demande-id, qui est un GUID. Si l’accès est refusé, veuillez indiquer ce GUID lorsque vous demandez de l’aide à Microsoft Tech Community, pour vous aider à identifier la cause de ce problème d’authentification.