Partage via


Ajouter l’authentification lors des appels à des API personnalisées à partir d’Azure Logic Apps

Pour améliorer la sécurité des appels à vos API, vous pouvez configurer l’authentification Microsoft Entra via le Portail Azure afin de ne pas avoir à mettre à jour votre code. Vous pouvez également exiger et appliquer une authentification par le biais du code de votre API.

Vous pouvez ajouter l’authentification comme suit :

  • Aucune modification du code : Protégez votre API avec l’ID Microsoft Entra via le Portail Azure. Vous n’avez donc pas besoin de mettre à jour votre code ou de redéployer votre API.

    Remarque

    Par défaut, l’authentification Microsoft Entra que vous sélectionnez dans le Portail Azure ne fournit pas d’autorisation affinée. Par exemple, cette authentification verrouille votre API vis-à-vis d’un locataire spécifique et non d’un utilisateur ou d’une application spécifique.

  • Mettez à jour le code de votre API : Protégez votre API en appliquant l’authentification par certificat, l’authentification de base ou l’authentification Microsoft Entra par le biais du code.

Authentifier les appels à votre API sans modifier le code

Voici les étapes générales de cette méthode :

  1. Créez deux identités d’application Microsoft Entra : une pour votre ressource d’application logique et une pour votre application web (ou application API).

  2. Pour authentifier les appels à votre API, utilisez les informations d’identification (ID client et secret) pour le principal de service associé à l’identité d’application Microsoft Entra pour votre application logique.

  3. Incluez les ID d’application dans votre définition de workflow d’application logique.

Partie 1 : Créer une identité d’application Microsoft Entra pour votre application logique

Votre ressource d’application logique utilise cette identité d’application Microsoft Entra pour s’authentifier auprès de l’ID Microsoft Entra. Vous n’avez besoin de configurer cette identité qu’une seule fois pour votre répertoire. Par exemple, vous pouvez choisir d’utiliser la même identité pour toutes vos applications logiques, même si vous pouvez créer des identités uniques pour chaque application logique. Vous pouvez configurer ces identités dans le portail Azure ou à l’aide de PowerShell.

  1. Dans le Portail Azure, sélectionnez Microsoft Entra ID.

  2. Vérifiez que vous vous trouvez dans le même répertoire que votre application web ou votre application API.

    Conseil

    Pour changer de répertoire, cliquez sur votre profil et sélectionnez un autre répertoire. Vous pouvez également sélectionner Présentation>Changer de répertoire.

  3. Dans le menu du répertoire, sélectionnez Inscriptions d’applications>Nouvelle inscription sous Gérer.

    La liste Toutes les inscriptions affiche toutes les inscriptions d’applications de votre répertoire. Pour afficher uniquement vos inscriptions d’applications, sélectionnez Applications détenues.

    Screenshot showing Azure portal with Microsoft Entra instance,

  4. Fournissez un nom accessible par l’utilisateur pour l’identité d’application de votre application logique. Sélectionnez les types de comptes pris en charge. Pour URI de redirection, sélectionnez Web, fournissez une URL unique où retourner la réponse d’authentification, puis sélectionnez Inscrire.

    Screenshot showing

    La liste Applications détenues répertorie maintenant votre identité d’application créée. Si cette identité n’apparaît pas, dans la barre d’outils, sélectionnez Actualiser.

    Screenshot showing the application identity for your logic app.

  5. Dans la liste des inscriptions d’application, sélectionnez votre nouvelle identité d’application.

  6. Dans le menu de navigation d’identité d’application, sélectionnez Vue d’ensemble.

  7. Dans le volet Vue d’ensemble, sous Essentiels, copiez et enregistrez l’ID de l’application à utiliser en tant qu’ID client pour votre application logique dans la partie 3.

    Screenshot showing the application (client) ID underlined.

  8. Dans le menu de navigation d’identité de l’application, sélectionnez Certificats et secrets.

  9. Dans l’onglet Secrets client, sélectionnez Nouveau secret client.

  10. Pour Description, indiquez le nom de votre secret. Sous Date d’expiration, sélectionnez la durée de votre secret. Une fois que vous avez terminé, sélectionnez Ajouter.

    Le secret que vous créez joue le rôle de clé secrète ou de mot de passe de l’identité d’application pour votre application logique.

    Screenshot showing secret creation for application identity.

    Dans le volet Certificats et secrets , sous Secrets client, votre secret s’affiche maintenant avec une valeur secrète et un ID de secret.

    Screenshot showing secret value and secret ID with copy button for secret value selected.

  11. Copiez la valeur de secret en vue d'une utilisation ultérieure. Lorsque vous configurez votre application logique dans la partie 3, vous spécifiez cette valeur en tant que secret ou mot de passe.

Partie 2 : Créer une identité d’application Microsoft Entra pour votre application web ou application API

Si votre application web ou votre application API est déjà déployée, vous pouvez activer l’authentification et créer l’identité de l’application dans le Portail Azure. Sinon, vous pouvez activer l’authentification lorsque vous effectuez un déploiement avec un modèle Azure Resource Manager.

Créer l’identité d’application pour une application web déployée ou une application API dans le portail Azure

  1. Dans le Portail Azure, recherchez puis sélectionnez votre application web ou votre application API.

  2. Sous Paramètres, sélectionnez Authentification>Ajouter un fournisseur d’identité.

  3. Une fois le volet Ajouter un fournisseur d’identité ouvert, sous l’onglet Informations de base, dans la liste des fournisseurs d’identité, sélectionnez Microsoft pour utiliser les identités Microsoft Entra, puis sélectionnez Ajouter.

  4. À présent, créez une identité d’application pour votre application web ou votre application API comme suit :

    1. Pour Type d’inscription d’application, sélectionnez Créer une inscription d’application.

    2. Pour Nom, indiquez le nom de votre identité d’application.

    3. Pour Types de comptes pris en charge, sélectionnez les types de comptes appropriés pour votre scénario.

    4. Pour Restreindre l’accès, sélectionnez Exiger l’authentification.

    5. Pour Requêtes non authentifiées, sélectionnez l’option en fonction de votre scénario.

    6. Une fois que vous avez terminé, sélectionnez Ajouter.

    L’identité d’application que vous venez de créer pour votre application web ou application API s’affiche désormais dans la section Fournisseur d’identité :

    Screenshot showing newly created application identity for web app or API app.

    Conseil

    Si l’application n’apparaît pas, dans la barre d’outils, sélectionnez Actualiser.

Vous devez à présent rechercher l’ID d’application (client) et l’ID de locataire pour l’identité d’application que vous venez de créer pour votre application web ou application API. Vous utiliserez ces ID dans la partie 3. Poursuivez cette procédure pour le portail Azure.

Rechercher l’ID client et l’ID de locataire de l’identité de l’application pour votre application web ou votre application API dans le Portail Azure

  1. Dans le menu de navigation de votre application web, sélectionnez Authentification.

  2. Dans la section Fournisseur d’identité, recherchez l’identité d’application que vous avez créée précédemment. Sélectionnez le nom de votre identité d’application.

    Screenshot showing newly created application identity with 'Overview' pane open.

  3. Une fois le volet Vue d’ensemble de l’identité d’application ouvert, recherchez les valeurs correspondant à ID d’application (client) et ID d’annuaire (locataire). Copiez et enregistrez les valeurs pour les utiliser dans la Partie 3.

    Screenshot showing application identity's 'Overview' pane open with 'Application (client) ID' value and 'Directory (tenant) ID' value underlined.

    Vous pouvez également utiliser le GUID de l’ID de locataire dans le modèle de déploiement de votre application web ou de votre application API si nécessaire. Ce GUID est celui de votre locataire spécifique (« ID de locataire ») et doit apparaître dans cette URL :https://sts.windows.net/{GUID}

Configurer l’authentification lorsque vous effectuez un déploiement avec un modèle Azure Resource Manager

Si vous utilisez un modèle Azure Resource Manager (modèle ARM), vous devez toujours créer une identité d’application Microsoft Entra pour votre application web ou application API qui diffère de l’identité de l’application logique pour votre application logique. Pour créer l’identité d’application, puis rechercher l’ID client et l’ID de locataire, suivez les étapes précédentes de la Partie 2 pour le portail Azure. Vous utiliserez l’ID client et l’ID de locataire dans le modèle de déploiement de votre application, de même que dans la Partie 3.

Important

Lorsque vous créez l’identité d’application Microsoft Entra pour votre application web ou votre application API, vous devez utiliser les Portail Azure, et non PowerShell. L’applet de commande PowerShell ne configure pas les autorisations requises pour connecter les utilisateurs à un site web.

Une fois que vous disposez de l’ID client et de l’ID de locataire, incluez-les en tant que sous-ressource de votre application web ou de votre application API dans votre modèle de déploiement :

"resources": [
   {
      "apiVersion": "2015-08-01",
      "name": "web",
      "type": "config",
      "dependsOn": ["[concat('Microsoft.Web/sites/','parameters('webAppName'))]"],
      "properties": {
         "siteAuthEnabled": true,
         "siteAuthSettings": {
            "clientId": "<client-ID>",
            "issuer": "https://sts.windows.net/<tenant-ID>/"
         }
      }
   }
]

Pour déployer automatiquement une application web vide et une application logique avec l’authentification Microsoft Entra, affichez le modèle complet ici ou sélectionnez le bouton Déployer sur Azure suivant :

Deploy to Azure

Troisième partie : Remplir la section Autorisation dans votre application logique

Cette section d’autorisation est déjà configurée dans le modèle précédent, mais si vous créez la définition de votre application logique directement, vous devez inclure la section d’autorisation complète.

  1. Ouvrez la définition de votre application logique en mode Code.

  2. Accédez à la définition d’action HTTP, recherchez la section Autorisation et incluez les propriétés suivantes :

{
   "tenant": "<tenant-ID>",
   "audience": "<client-ID-from-Part-2-web-app-or-API app>",
   "clientId": "<client-ID-from-Part-1-logic-app>",
   "secret": "<secret-from-Part-1-logic-app>",
   "type": "ActiveDirectoryOAuth"
}
Propriété Obligatoire Description
tenant Oui GUID du locataire Microsoft Entra
audience Oui GUID de la ressource cible à laquelle vous souhaitez accéder, c’est-à-dire l’ID client de l’identité de votre application web ou de votre application API
clientId Oui GUID du client demandant l’accès, c’est-à-dire l’ID client de l’identité de votre application logique
secret Oui Secret ou mot de passe de l’identité d’application pour le client qui demande le jeton d’accès
type Oui Type d’authentification. Pour l’authentification ActiveDirectoryOAuth, la valeur est ActiveDirectoryOAuth.

Par exemple :

{
   "actions": {
      "HTTP": {
         "inputs": {
            "method": "POST",
            "uri": "https://your-api-azurewebsites.net/api/your-method",
            "authentication": {
               "tenant": "tenant-ID",
               "audience": "client-ID-from-azure-ad-app-for-web-app-or-api-app",
               "clientId": "client-ID-from-azure-ad-app-for-logic-app",
               "secret": "key-from-azure-ad-app-for-logic-app",
               "type": "ActiveDirectoryOAuth"
            }
         }
      }
   }
}

Sécuriser les appels à l’API avec le code

Authentification par certificat

Vous pouvez utiliser des certificats clients pour valider les demandes entrantes de votre workflow d’application logique parvenant à votre application web ou votre application API. Pour configurer votre code, consultez Configuration de l’authentification mutuelle TLS pour une application web.

Dans la section Autorisation, ajoutez les propriétés suivantes :

{
   "type": "ClientCertificate",
   "password": "<password>",
   "pfx": "<long-pfx-key>"
}
Propriété Obligatoire Description
type Oui Type d’authentification. Pour les certificats client TLS/SSL, la valeur doit être ClientCertificate.
password Non Mot de passe pour l’accès au certificat client (fichier PFX)
pfx Oui Contenu codé base 64 du certificat client (fichier PFX)

Authentification de base

Pour valider les demandes entrantes de votre application logique à l’attention de votre application web ou de votre application API, vous pouvez utiliser l’authentification de base, par exemple, un nom d’utilisateur et un mot de passe. L’authentification de base est une méthode courante que vous pouvez utiliser dans n’importe quel langage utilisé pour générer votre application web ou votre application API.

Dans la section Autorisation, ajoutez les propriétés suivantes :

{
   "type": "Basic",
   "username": "<username>",
   "password": "<password>"
}
Propriété Obligatoire Description
type Oui Le type d’authentification que vous souhaitez utiliser. Pour l’authentification de base, la valeur doit être Basic.
username Oui Le nom d’utilisateur que vous souhaitez utiliser pour l’authentification.
password Oui Le mot de passe que vous souhaitez utiliser pour l’authentification.

Authentification Microsoft Entra par le biais du code

Par défaut, l’authentification Microsoft Entra que vous activez dans le Portail Azure ne fournit pas d’autorisation affinée. Par exemple, cette authentification verrouille votre API vis-à-vis d’un locataire spécifique et non d’un utilisateur ou d’une application spécifique.

Pour restreindre l’accès des API à votre application logique à l’aide du code, extrayez l’en-tête contenant le jeton JWT (JSON Web Token). Vérifiez l’identité de l’appelant et rejetez les demandes qui ne correspondent pas.

Étapes suivantes