Partager 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 d’éviter de devoir 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 :

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 l’autre pour votre application web (ou application API).

  2. Pour authentifier les appels à votre API, utilisez les informations d’identification (ID et clé secrète client) du principal de service associé à l’identité Microsoft Entra de 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 Microsoft Entra ID. 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.

    Capture d’écran montrant le portail Azure avec l’instance Microsoft Entra, le volet « Inscription d’application » et l’option « Nouvelle inscription d’application» sélectionnée.

  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.

    Capture d’écran montrant le volet « Inscrire une application » avec le nom d’identité d’application et l’URL où envoyer la réponse d’authentification.

    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.

    Capture d’écran montrant l’identité d’application pour votre application logique.

  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.

    Capture d’écran montrant l’ID d’application (client) souligné.

  8. Dans le menu de navigation d’identité d’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.

    Capture d’écran montrant la création du secret pour l’identité d’application.

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

    Capture d’écran montrant la valeur et l’ID de secret avec le bouton Copier pour la valeur de secret sélectionné.

  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 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é :

    Capture d’écran montrant l’identité d’application nouvellement créée pour l’application web ou l’application API.

    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.

    Capture d’écran montrant l’identité d’application nouvellement créée avec le volet « Vue d’ensemble » ouvert.

  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.

    Capture d’écran montrant le volet « Vue d’ensemble » de l’identité d’application ouvert avec les valeurs « ID d’application (client) » et « ID d’annuaire (locataire) » soulignées.

    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 (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é d’application 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é de l’application Microsoft Entra pour votre application web ou votre application API, vous devez utiliser le portail Azure et pas 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 et une application logique vides avec l’authentification Microsoft Entra, consultez le modèle complet ou sélectionnez le bouton Déployer dans Azure suivant :

Déployer dans 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 L’ID de locataire pour le GUID 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 une 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