Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’APPLIQUE À : tous les niveaux de Gestion des API
Cet article vous guide tout au long des étapes générales permettant de configurer et d’utiliser une connexion managée qui accorde aux utilisateurs ou groupes Microsoft Entra des autorisations déléguées à une API OAuth 2.0 back-end. Suivez ces étapes pour les scénarios où une application cliente (ou bot) doit accéder aux ressources en ligne sécurisées par le serveur principal pour le compte d’un utilisateur authentifié (par exemple, pour vérifier les e-mails ou passer une commande).
Vue d’ensemble du scénario
Note
Ce scénario s’applique uniquement aux fournisseurs d’informations d’identification configurés avec le type d’octroi de code d’autorisation .
Dans ce scénario, vous configurez une connexion managée qui permet à une application cliente (ou bot) d’accéder à une API back-end pour le compte d’un utilisateur ou d’un groupe Microsoft Entra. Par exemple, vous pouvez avoir une application web statique qui accède à une API GitHub principale et vous souhaitez accéder aux données spécifiques à l’utilisateur connecté. Le diagramme suivant illustre le scénario.
- L’utilisateur doit autoriser l’application à accéder aux ressources sécurisées en son nom. Pour autoriser l’application, l’utilisateur doit authentifier son identité dans Microsoft Entra.
- Pour effectuer des opérations au nom d’un utilisateur, l’application appelle le service back-end externe, tel que GitHub.
- Chaque service externe a un moyen de sécuriser ces appels ; par exemple, avec un jeton d’utilisateur qui identifie de manière unique l’utilisateur.
- Pour sécuriser l’appel au service externe, l’application doit demander à l’utilisateur de se connecter afin qu’il puisse acquérir le jeton de l’utilisateur.
- Dans le cadre de la configuration, vous inscrivez un fournisseur d’informations d’identification à l’aide du gestionnaire d’informations d’identification dans l’instance Gestion des API. Il contient des informations sur le fournisseur d’identité à utiliser, ainsi qu’un ID client OAuth et un secret valides, les étendues OAuth à activer et d’autres métadonnées de connexion requises par ce fournisseur d’identité.
- Vous créez et utilisez une connexion pour vous aider à connecter l’utilisateur et à obtenir le jeton utilisateur afin qu’il puisse être géré.
Prerequisites
Accès à un tenant Microsoft Entra dans lequel vous disposez des autorisations nécessaires pour créer un enregistrement d'application et accorder le consentement administrateur pour les autorisations de l'application. En savoir plus
Si vous souhaitez créer votre propre locataire de développeur, vous pouvez vous inscrire au Programme de développement Microsoft 365.
Un ou plusieurs utilisateurs ou groupes du locataire auxquels déléguer des droits.
Instance gestion des API en cours d’exécution. Si vous avez besoin, créez une instance Gestion des API Azure.
API OAuth 2.0 principale que vous souhaitez accéder au nom de l’utilisateur ou du groupe. Par exemple, l’API GitHub.
- Si vous choisissez d’utiliser Azure PowerShell localement :
- Installez la dernière version du module Az PowerShell.
- Connectez-vous à votre compte Azure à l’aide de la cmdlet Connect-AzAccount.
- Si vous choisissez d’utiliser Azure Cloud Shell :
- Pour plus d’informations, consultez Vue d’ensemble d’Azure Cloud Shell.
Étape 1 : Approvisionner le principal de service Plan de données Gestion des API Azure
Vous devez approvisionner le principal de service Plan de données Gestion des API Azure pour accorder aux utilisateurs ou aux groupes les autorisations déléguées nécessaires. Procédez comme suit pour provisionner le principal de service à l’aide d’Azure PowerShell.
Connectez-vous à Azure PowerShell.
Si le module AzureAD n’est pas déjà installé, installez-le avec la commande suivante :
Install-Module -Name AzureAD -Scope CurrentUser -Repository PSGallery -ForceConnectez-vous à votre locataire avec la commande suivante :
Connect-AzureAD -TenantId "<YOUR_TENANT_ID>"Si vous y êtes invité, connectez-vous avec les informations d’identification du compte d’administrateur pour votre locataire.
Approvisionnez le principal de service Plan de données Gestion des API Azure avec la commande suivante :
New-AzureADServicePrincipal -AppId c8623e40-e6ab-4d2b-b123-2ca193542c65 -DisplayName "Azure API Management Data Plane"
Étape 2 : Créer une inscription d’application Microsoft Entra
Créez une application Microsoft Entra ID pour la délégation d’utilisateur et accordez-lui les autorisations appropriées pour lire la connexion dans Gestion des API.
- Connectez-vous au portail Azure avec un compte disposant d’autorisations suffisantes dans le locataire.
- Sous Services Azure, recherchez l’ID Microsoft Entra.
- Dans le menu de gauche, sélectionnez Gérer les>inscriptions d’applications, puis sélectionnez + Nouvelle inscription.
- Dans la page Inscrire une application , entrez les paramètres d’inscription de votre application :
- Dans Nom, entrez un nom explicite que les utilisateurs voient, tel que UserPermissions.
- Dans les types de comptes pris en charge, sélectionnez une option qui convient à votre scénario, par exemple, Comptes dans cet annuaire organisationnel uniquement (locataire unique).
- Définissez l’URI de redirection sur Web et entrez
https://www.postman-echo.com/get. - Sélectionnez Inscrire.
- Dans le menu de gauche, sélectionnez Gérer les>autorisations d’API, puis sélectionnez + Ajouter une autorisation.
- Sélectionnez l'onglet API que mon organisation utilise, tapez Azure API Management Data Plane, puis sélectionnez-le.
- Sous Autorisations, sélectionnez Authorizations.Read, puis Ajoutez des autorisations.
- Dans le menu de gauche, sélectionnez Vue d’ensemble. Dans la page Vue d’ensemble , recherchez la valeur de l’ID d’application (client) et enregistrez-la pour une utilisation ultérieure.
- Dans le menu de gauche, sélectionnez Gérer les>certificats et secrets, puis sélectionnez + Nouveau secret client.
- Entrez une description.
- Sélectionnez une option pour Expires.
- Sélectionnez Ajouter.
- Copiez la valeur du secret client avant de quitter la page. Vous en aurez besoin dans une étape ultérieure.
Étape 3 : Configurer un fournisseur d’informations d’identification dans Gestion des API
Dans cette étape, créez un fournisseur d’informations d’identification pour votre API OAuth 2.0 principale que vous souhaitez accéder au nom de l’utilisateur ou du groupe. Par exemple, suivez les étapes pour créer un fournisseur d’informations d’identification pour l’API GitHub. Les brèves étapes suivantes sont les suivantes :
- Créez une application OAuth dans GitHub pour l’API et accordez-lui les autorisations appropriées pour les demandes que vous souhaitez appeler.
- Connectez-vous au portail Azure et accédez à votre instance Gestion des API.
- Dans le menu de gauche, sélectionnez APIs>gestionnaire des identifiants, puis sélectionnez + Créer.
- Dans Créer un fournisseur d’informations d’identification, entrez les paramètres du fournisseur GitHub. Pour ce scénario, dans Le type Grant, sélectionnez Code d’autorisation. Pour plus d’informations, consultez Configurer des fournisseurs d’informations d’identification dans le gestionnaire d’informations d’identification.
- Cliquez sur Créer.
- Lorsque vous y êtes invité, passez en revue l’URL de redirection OAuth affichée, puis sélectionnez Oui pour confirmer qu’elle correspond à l’URL que vous avez entrée dans l’inscription de l’application GitHub.
Étape 4 : Configurer une connexion
Après avoir créé un fournisseur d’informations d’identification, vous pouvez ajouter une connexion au fournisseur GitHub. Sous l’onglet Connexion , effectuez les étapes de votre connexion :
- Entrez un nom de connexion, puis sélectionnez Enregistrer.
- Sous l’étape 2 : Connectez-vous à votre connexion, sélectionnez le bouton Connexion . Effectuez les étapes suivantes pour autoriser l’accès et revenir à Gestion des API.
- Sous l’étape 3 : déterminer qui aura accès à cette connexion (stratégie d’accès), sélectionnez + Ajouter. Selon votre scénario de délégation, sélectionnez Utilisateurs ou Groupe.
- Dans la fenêtre Sélectionner un élément , effectuez des sélections dans l’ordre suivant :
- Recherchez un ou plusieurs utilisateurs ou groupes à ajouter et cochez la case de sélection.
- Recherchez l’inscription d’application que vous avez créée dans une section précédente.
- Sélectionnez Sélectionner.
- Sélectionnez Terminer.
La nouvelle connexion apparaît dans la liste des connexions et affiche l’état Connecté. Si vous souhaitez créer une autre connexion pour le fournisseur d’informations d’identification, effectuez les étapes précédentes.
Conseil / Astuce
Utilisez le portail Azure pour ajouter, mettre à jour ou supprimer des connexions à un fournisseur d’informations d’identification à tout moment. Pour plus d’informations, consultez Configurer plusieurs connexions.
Étape 5 : Obtenir un jeton d’accès Microsoft Entra ID
Pour activer l'accès utilisateur délégué à l'API en backend, vous devez fournir un jeton d'accès pour l'utilisateur ou le groupe délégué au moment de l'exécution dans la get-authorization-context politique. En règle générale, votre application cliente obtient ce jeton par programme à l’aide de la bibliothèque d’authentification Microsoft (MSAL). Cette section fournit des étapes manuelles pour créer un jeton d’accès à des fins de test.
Collez l’URL suivante dans votre navigateur, en remplaçant les valeurs pour
<tenant-id>et<client-id>par les valeurs de votre inscription d’application Microsoft Entra :https://login.microsoftonline.com/<tenant-id>/oauth2/authorize?client_id=<client-id>&response_type=code&redirect_uri=https://www.postman-echo.com/get&response_mode=query&resource=https://azure-api.net/authorization-manager&state=1234Lorsque vous y êtes invité, connectez-vous. Dans le corps de la réponse, copiez la valeur du code fourni (exemple :
"0.AXYAh2yl...").Envoyez la requête suivante
POSTau point de terminaison pour le jeton, en remplaçant<tenant-id>par votre identifiant de locataire et en incluant l'en-tête spécifié ainsi que les paramètres de corps associés à l'enregistrement de votre application et le code que vous avez copié à l'étape précédente.POST https://login.microsoftonline.com/<tenant-id>/oauth2/token HTTP/1.1Header
Content-Type: application/x-www-form-urlencodedCorps
grant_type: "authorization_code" client_id: <client-id> client_secret: <client-secret> redirect_uri: <redirect-url> code: <code> ## The code you copied in the previous stepDans le corps de la réponse, copiez la valeur de access_token fournie (exemple :
eyJ0...). Vous passez cette valeur dans la configuration de la stratégie à l’étape suivante.
Étape 6 : Configurer la stratégie get-authorization-context pour l’API back-end
Configurez la stratégie get-authorization-context pour l’API back-end que vous souhaitez accéder au nom de l’utilisateur ou du groupe. À des fins de test, vous pouvez configurer la stratégie à l’aide du jeton d’accès Microsoft Entra ID pour l’utilisateur que vous avez obtenu dans la section précédente.
Connectez-vous au portail Azure et accédez à votre instance Gestion des API.
Dans le menu de gauche, sélectionnez API>et sélectionnez votre API back-end OAuth 2.0.
Sélectionnez Toutes les opérations. Dans la section Traitement entrant , sélectionnez l’icône (</>) (éditeur de code).
Configurez la stratégie
get-authorization-contextdans la sectioninbound, en définissantidentity-typesurjwt. Configurez également les deuxset-headerstratégies pour définir l’en-têteAuthorizationavec le jeton obtenu dans laget-authorization-contextstratégie et configurer un en-tête requisUser-Agentpour l’API GitHub.<policies> <inbound> [...] <get-authorization-context provider-id="<credential-provider-id>" authorization-id="<connection-id>" context-variable-name="auth-context" identity-type="jwt" identity="<access-token>" ignore-error="false" /> <set-header name="Authorization" exists-action="override"> <value>@("Bearer " + ((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</value> </set-header> <set-header name="User-Agent" exists-action="override"> <value>API Management</value> </set-header> [...] </inbound> </policies>
Dans la définition de stratégie précédente, remplacez :
<credential-provider-id>et<connection-id>avec les noms du fournisseur d’informations d’identification et de la connexion, respectivement, que vous avez configurés à l’étape précédente.<access-token>avec le jeton d’accès Microsoft Entra ID que vous avez généré à l’étape précédente.
Étape 7 : Tester l’API
Sous l’onglet Test , sélectionnez une opération que vous avez configurée.
Sélectionnez Envoyer.
Une réponse réussie retourne les données utilisateur de l’API back-end.
Contenu connexe
- En savoir plus sur les stratégies d’authentification et d’autorisation.
- En savoir plus sur les étendues et les autorisations dans Microsoft Entra ID.