Partage via


Configurer le gestionnaire d’informations d’identification – Accès délégué par l’utilisateur à une API back-end

S’APPLIQUE À : tous les niveaux de Gestion des API

Cet article vous guide tout au long de la procédure générale de configuration et d’utilisation d’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 à des ressources en ligne sécurisées par un back-end pour le compte d’un utilisateur authentifié (par exemple, vérifier le courrier électronique ou passer une commande).

Présentation du scénario

Remarque

Ce scénario s’applique uniquement aux fournisseurs d’informations d’identification configurés avec le type d’autorisation 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 au nom d’un utilisateur ou d’un groupe Microsoft Entra. Par exemple, vous avez une application web statique qui accède à une API GitHub back-end et qui doit accéder aux données spécifiques de l’utilisateur connecté. Le diagramme suivant illustre ce scénario.

Diagramme montrant le flux de processus pour les autorisations déléguées par l’utilisateur.

  • L’utilisateur doit autoriser l’application à accéder aux ressources sécurisées en son nom. Pour ce faire, il doit authentifier son identité.
  • Pour effectuer des opérations au nom d’un utilisateur, l’application appelle le service back-end externe, tel que Microsoft Graph ou GitHub.
  • Chaque service externe a un moyen de sécuriser ces appels, par exemple, avec un jeton utilisateur qui identifie de façon unique l’utilisateur.
  • Pour sécuriser l’appel à un service externe, l’application doit demander à l’utilisateur de se connecter afin d’obtenir le jeton de l’utilisateur.
  • Dans le cadre de la configuration, un fournisseur d’informations d’identification est inscrit à 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 secret et un ID client OAuth valides, les étendues OAuth à activer et d’autres métadonnées de connexion exigées par ce fournisseur d’identité.
  • En outre, une connexion est créée et utilisée pour faciliter la connexion de l’utilisateur et obtenir le jeton utilisateur afin qu’il puisse être géré.

Prérequis

  • Accès à un locataire Microsoft Entra dans lequel vous disposez des autorisations nécessaires pour créer une inscription d’application et accorder le consentement de l’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 pour les développeurs Microsoft 365.

  • Un ou plusieurs utilisateurs ou groupes dans le locataire auxquels déléguer des autorisations.

  • Une instance Gestion des API en cours d’exécution. Si nécessaire, créez une instance Gestion des API Azure.

  • Une API OAuth 2.0 back-end à laquelle vous souhaitez accéder au nom de l’utilisateur ou du groupe.

É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. Utilisez les étapes ci-dessous pour approvisionner le principal de service à l’aide d’Azure PowerShell.

  1. Connectez-vous à Azure PowerShell.

  2. Si le module AzureAD n’est pas déjà installé, installez-le avec la commande suivante :

    Install-Module -Name AzureAD -Scope CurrentUser -Repository PSGallery -Force
    
  3. Connectez-vous à votre locataire avec la commande suivante :

    Connect-AzureAD -TenantId "<YOUR_TENANT_ID>"
    
  4. Si vous y êtes invité, connectez-vous avec les informations d’identification du compte d’administrateur de votre locataire.

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

  1. Connectez-vous au Portail Azure avec un compte disposant d’autorisations suffisantes dans le locataire.
  2. Sous Services Azure, sélectionnez Microsoft Entra ID.
  3. Dans le menu de gauche, sélectionnez Inscriptions d’applications, puis sélectionnez + Nouvelle inscription.
  4. Dans la page Inscrire une application, entrez les paramètres d’inscription de votre application :
    1. Dans Nom, entrez un nom explicite qui sera vu par les utilisateurs de l’application, par exemple UserPermissions.
    2. Dans Types de comptes pris en charge, sélectionnez une option adaptée à votre scénario, par exemple, Comptes dans cet annuaire d’organisation uniquement (locataire unique).
    3. Définissez l’URI de redirection sur Web, puis entrez https://www.postman-echo.com/get.
  5. Dans le menu de gauche, sélectionnez Autorisations d’API, puis + Ajouter une autorisation.
    1. Sélectionnez l’onglet API utilisées par mon organisation, tapez Plan de données Gestion des API Azure, puis sélectionnez-le.
    2. Sous Autorisations, sélectionnez Authorizations.Read, puis sélectionnez Ajouter des autorisations.
  6. Dans le menu de gauche, sélectionnez Vue d’ensemble. Sur la page Vue d’ensemble, recherchez la valeur de l’ID d’application (client) et notez-la pour l’utiliser ultérieurement.
  7. Dans le menu de gauche, sélectionnez Certificats et secrets, puis + Nouveau secret client.
    1. Entrez une Description.
    2. Sélectionnez une option pour Date d’expiration.
    3. Sélectionnez Ajouter.
    4. 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

  1. Connectez-vous au portail et accédez à votre instance Gestion des API.
  2. Dans le menu de gauche, sélectionnez Gestionnaire d’informations d’identification, puis + Créer.
    Capture d’écran de la création d’informations d’identification d’API dans le portail.
  3. Sur la page Créer un fournisseur d’informations d’identification, entrez les paramètres du fournisseur d’informations d’identification pour votre API. Pour ce scénario, dans Type d’autorisation, vous devez sélectionner Code d’autorisation. Pour plus d’informations, consultez l’article Configurer des fournisseurs d’informations d’identification dans le gestionnaire d’informations d’identification.
  4. Sélectionnez Créer.
  5. Quand 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 lors de l’inscription de l’application.

Étape 4 : Configurer une connexion

Après avoir créé un fournisseur d’informations d’identification, vous pouvez ajouter une connexion au fournisseur. Sous l’onglet Connexion, effectuez les étapes pour configurer votre connexion :

  1. Entrez un nom de connexion, puis sélectionnez Enregistrer.
  2. Sous Étape 2 : Se connecter à votre connexion, sélectionnez le lien pour vous connecter au fournisseur d’informations d’identification. Effectuez les étapes pour autoriser l’accès, puis retournez à Gestion des API.
  3. Sous É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.
  4. Dans la fenêtre Sélectionner un élément, effectuez des sélections dans l’ordre suivant :
    1. Tout d’abord, recherchez un ou plusieurs utilisateurs (ou groupes) à ajouter et activez la case de sélection.
    2. Ensuite, dans la liste qui s’affiche, recherchez l’inscription de l’application que vous avez créée dans une section précédente.
    3. Puis cliquez sur Sélectionner.
  5. Cliquez sur Terminer.

La nouvelle connexion apparaît dans la liste des connexions et présente 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

Utilisez le portail pour ajouter, mettre à jour ou supprimer des connexions à un fournisseur d’informations d’identification à tout moment. Pour plus d’informations, consultez l’article Configurer plusieurs connexions.

Étape 5 : Acquérir un jeton d’accès Microsoft Entra ID

Pour activer l’accès délégué par l’utilisateur à l’API back-end, un jeton d’accès pour l’utilisateur ou le groupe délégué doit être fourni au moment de l’exécution dans la stratégie get-authorization-context. En règle générale, cette opération est effectuée par programme dans votre application cliente à l’aide de la Bibliothèque d’authentification Microsoft (MSAL). Cette section fournit les étapes manuelles à effectuer pour créer un jeton d’accès à des fins de test.

  1. Collez l’URL suivante dans votre navigateur, en remplaçant les valeurs <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=1234`
    
  2. Quand vous y êtes invité, connectez-vous. Dans le corps de la réponse, copiez la valeur code fournie (exemple : "0.AXYAh2yl…").

  3. Envoyez la requête POST suivante au point de terminaison du jeton, en remplaçant <tenant-id> par votre ID de locataire et en incluant l’en-tête indiqué et les paramètres de corps de votre inscription d’application, ainsi que le code que vous avez copié à l’étape précédente.

    POST https://login.microsoftonline.com/<tenant-id>/oauth2/token HTTP/1.1
    

    En-tête

    Content-Type: application/x-www-form-urlencoded

    Corps

    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 step
    
  4. Dans le corps de la réponse, copiez la valeur access_token fournie (exemple : eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjZqQmZ1...). Vous transmettez 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 à laquelle 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.

  1. Connectez-vous au portail et accédez à votre instance Gestion des API.

  2. Dans le menu de gauche, sélectionnez API, puis sélectionnez votre API OAuth 2.0 back-end.

  3. Sélectionnez Toutes les opérations. Dans la section Traitement entrant, sélectionnez l’icône Éditeur de code (</>).

  4. Configurez la stratégie get-authorization-context dans la section inbound, en définissant identity-type sur jwt :

    <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" />
            [...]
        </inbound> 
    </policies>
    

Dans la définition de stratégie précédente, remplacez :

  • <credential-provider-id> et <connection-id> par les noms du fournisseur d’informations d’identification et de la connexion, respectivement, que vous avez configurés dans une étape précédente.

  • <access-token> par le jeton d’accès Microsoft Entra ID que vous avez généré à l’étape précédente.

Étape 7 : Tester l’API

  1. Sous l’onglet Test, sélectionnez une opération que vous avez configurée.

  2. Sélectionnez Envoyer.

    Une réponse réussie renvoie les données utilisateur de l’API back-end.