Autorisation et API de sécurité Microsoft Graph

Les données de sécurité accessibles via le API de sécurité Microsoft Graph sont sensibles et protégées par des autorisations et des 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’Administration Microsoft Entra ID limité (Lecteur de sécurité ou Administrateur de sécurité) en plus des autorisations requises accordées à l’application.

Si vous appelez l’API de sécurité Microsoft Graph à partir de l’Afficheur Graph :

  • L’administrateur de locataire Microsoft Entra doit explicitement accorder le consentement pour les autorisations demandées à l’application Graph Explorer.

  • L’utilisateur doit être membre du rôle Lecteur de sécurité limité Administration dans Microsoft Entra ID (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 de 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 de la sécurité limité Administration dans Microsoft Entra ID.

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 de 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 Microsoft Entra ID 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 :

  1. 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 .

  2. Sélectionnez Nouvelle inscription.

  3. 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.

  4. Sélectionnez Enregistrer pour créer l’application et afficher sa page de présentation. *

  5. Accéder à la page de l’application Autorisations de l’API.

  6. 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
    secureScoreControlProfiles
    GET
    SecurityEvents.ReadWrite.All alerts
    secureScores
    secureScoreControlProfiles
    GET, POST, PATCH
    ThreatIndicators.ReadWrite.OwnedBy tiIndicator (préversion) GET, POST, PATCH, DELETE
  7. 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 le API de sécurité Microsoft Graph. Par conséquent, seuls les utilisateurs des rôles WDATP et Microsoft Graph API de sécurité 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, le API de sécurité Microsoft Graph exige également que les utilisateurs se voient attribuer le rôle Lecteur de sécurité Microsoft Entra ID. Pour plus d’informations, consultez Autorisations de rôle d’administrateur dans Microsoft Entra ID et Attribuer des rôles d’administrateur et de non-administrateur aux utilisateurs disposant de Microsoft Entra ID.

Remarque

Vous devez être un administrateur client pour effectuer cette étape.

Assigner un rôle à un utilisateur :

  1. Connectez-vous au Centre d'administration Microsoft 365.
  2. Développez le menu >Identité, développez Utilisateurs>, sélectionnez Tous les utilisateurs.
  3. Sélectionnez l’utilisateur.
  4. Sélectionnez les rôles attribués, puis Ajouter une affectation.
  5. 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 Microsoft Entra ID 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.

Type d’application Bibliothèque d’authentification
Applications de bureau : iOS MSAL.framework : Aperçu de bibliothèque d’authentification Microsoft pour iOS
Applications de bureau : Android Bibliothèque d’authentification de Microsoft (MSAL)
Applications de bureau : .Net Bibliothèque d’authentification de Microsoft (MSAL)
Applications Web : JavaScript SPA Bibliothèque d’authentification Microsoft pour aperçu JavaScript
Applications Web : serveur Web .NET OpenIdConnection, Cookies, SystemWeb
Applications Web : NodeJS application Web

Pour les applications qui n’utilisent pas des bibliothèques existantes, voir accéder au nom d’un utilisateur.

  1. Obtenez un code à partir de Microsoft Entra ID. La requête à appeler contient un paramètre pour l'ID d'application, l'URL de redirection et les autorisations requises.
  2. 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 Microsoft Entra ID 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.