Partager via


Consentement administrateur sur la plateforme d’identités Microsoft

Certaines autorisations nécessitent le consentement d’un administrateur avant de pouvoir être accordées au sein d’un locataire. Vous pouvez également utiliser le point de terminaison de consentement administrateur pour accorder des autorisations à un locataire entier.

En général, lorsque vous créez une application qui utilise le point de terminaison de consentement de l’administrateur, l’application doit disposer d’une page ou vue dans laquelle l’administrateur peut approuver ses autorisations. Cette page peut faire partie du flux de connexion de l'application, des paramètres de l'application, ou peut être un flux de « connexion « dédié. Dans de nombreux cas, il est logique que l'application affiche cette vue "connect" uniquement après qu'un utilisateur s'est connecté à un compte Microsoft professionnel ou scolaire.

Lorsque vous connectez l'utilisateur à votre application, vous pouvez identifier l'organisation à laquelle l'administrateur appartient avant de demander à l'utilisateur d'approuver les autorisations nécessaires. Bien que cela ne soit pas strictement nécessaire, cela peut vous aider à créer une expérience plus intuitive pour vos utilisateurs d’organisation.

Demander les autorisations à un administrateur d’annuaire

Lorsque vous êtes prêt à demander des autorisations auprès de l’administrateur de votre organisation, vous pouvez rediriger l’utilisateur vers le point de terminaison de consentement de l’administrateur de la plateforme d’identités Microsoft.

https://login.microsoftonline.com/{tenant}/v2.0/adminconsent
        ?client_id=00001111-aaaa-2222-bbbb-3333cccc4444
        &scope=https://graph.microsoft.com/Calendars.Read https://graph.microsoft.com/Mail.Send
        &redirect_uri=http://localhost/myapp/permissions
        &state=12345
Paramètre État Descriptif
tenant Obligatoire Le client d’annuaire auquel vous souhaitez demander l’autorisation. Peut être fourni au format GUID ou nom convivial OU référencé génériquement avec organizations comme indiqué dans l’exemple. N’utilisez pas « common », car les comptes personnels ne peuvent pas fournir le consentement administrateur, sauf dans le contexte d’un locataire. Pour garantir une meilleure compatibilité avec les comptes personnels qui gèrent les locataires, utilisez l’ID de locataire, dans la mesure du possible.
client_id Obligatoire L’ID d’application (client) que l’expérience Inscriptions d’applications du centre d’administration Microsoft Entra a attribué à votre application.
redirect_uri Obligatoire URI de redirection dans lequel vous souhaitez que la réponse soit envoyée pour que votre application gère. Il doit correspondre exactement à l’un des URI de redirection que vous avez inscrits dans le portail d’inscription des applications.
state Recommandé Une valeur incluse dans la requête, qui sera également renvoyée dans la réponse de jeton. Il peut s’agir d’une chaîne du contenu de votre choix. Utilisez l’état pour encoder les informations sur l’état de l’utilisateur dans l’application avant la requête d’authentification, comme la page ou la vue sur laquelle ou laquelle il était positionné.
scope Obligatoire Définit l’ensemble des autorisations demandées par l’application. Cela peut être statique (à l’aide /.default) ou des étendues dynamiques. Cela peut inclure les étendues OIDC (openid, profile, email).

À ce stade, Microsoft Entra ID nécessite qu’un administrateur client se connecte pour compléter la requête. L’administrateur est invité à approuver toutes les autorisations demandées dans le scope paramètre. Si vous avez utilisé une valeur statique (/.default), elle fonctionne comme le point de terminaison de consentement administrateur v1.0 et demande le consentement pour toutes les étendues trouvées dans les autorisations requises (utilisateur et application). Pour demander des autorisations d’application, vous devez utiliser la /.default valeur. Si vous ne souhaitez pas que les administrateurs voient une autorisation donnée dans l’écran de consentement de l’administrateur à tout moment lorsque vous utilisez /.default, la meilleure pratique consiste à ne pas placer l’autorisation dans la section autorisations requises. Au lieu de cela, vous pouvez utiliser le consentement dynamique pour ajouter les autorisations que vous souhaitez accéder à l’écran de consentement au moment de l’exécution, plutôt que d’utiliser /.default.

Réponse réussie

Si l’administrateur approuve les autorisations pour votre application, la réponse réussie ressemble à ceci :

http://localhost/myapp/permissions
    ?admin_consent=True
    &tenant=aaaabbbb-0000-cccc-1111-dddd2222eeee
    &scope=https://graph.microsoft.com/Calendars.Read https://graph.microsoft.com/Mail.Send
    &state=12345
Paramètre Descriptif
tenant Le locataire du répertoire qui a accordé à votre application les autorisations demandées, sous forme d'identifiant global unique (GUID).
state Valeur incluse dans la requête qui sera également retournée dans la réponse du jeton. Il peut s’agir d’une chaîne du contenu de votre choix. L’état est utilisé pour encoder des informations sur l’état de l’utilisateur dans l’application avant la demande d’authentification, telles que la page ou la vue sur laquelle il se trouvait.
scope Ensemble d’autorisations auxquelles l’accès a été accordé, pour l’application.
admin_consent Sera défini sur True.

Avertissement

N’utilisez jamais la valeur d’ID de locataire du tenant paramètre pour authentifier ou autoriser les utilisateurs. La valeur de l’ID de locataire peut être mise à jour et envoyée par des acteurs incorrects pour emprunter l’identité d’une réponse à votre application. Cela peut entraîner l’exposition de votre application à des incidents de sécurité.

Réponse d’erreur

http://localhost/myapp/permissions
        ?admin_consent=True
        &error=consent_required
        &error_description=AADSTS65004%3a+The+resource+owner+or+authorization+server+denied+the+request.%0d%0aTrace+ID%3a+0000aaaa-11bb-cccc-dd22-eeeeee333333%0d%0aCorrelation+ID%3a+8478d534-5b2c-4325-8c2c-51395c342c89%0d%0aTimestamp%3a+2019-09-24+18%3a34%3a26Z
        &state=12345

L’ajout aux paramètres affichés dans une réponse réussie, les paramètres d’erreur sont considérés comme ci-dessous.

Paramètre Descriptif
error Une chaîne de code d’erreur pouvant être utilisée pour classer les types d’erreurs se produisant, et pouvant être utilisée pour intervenir face aux erreurs.
error_description Message d’erreur spécifique qui peut aider un développeur à identifier la cause racine d’une erreur.
state Valeur incluse dans la requête qui sera également retournée dans la réponse du jeton. Il peut s’agir d’une chaîne du contenu de votre choix. L’état est utilisé pour encoder des informations sur l’état de l’utilisateur dans l’application avant la demande d’authentification, telles que la page ou la vue sur laquelle il se trouvait.
admin_consent Cette réponse est définie pour True indiquer que cette réponse s’est produite sur un flux de consentement administrateur.

Étapes suivantes