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 :
Aucune modification de code : protégez votre API avec Microsoft Entra ID par le biais du Portail Azure, ce qui vous évite 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 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.
Mise à jour du 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 :
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).
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.
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.
Dans le portail Azure, sélectionnez Microsoft Entra ID.
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.
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.
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.
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.
Dans la liste des inscriptions d’application, sélectionnez votre nouvelle identité d’application.
Dans le menu de navigation d’identité d’application, sélectionnez Vue d’ensemble.
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.
Dans le menu de navigation d’identité d’application, sélectionnez Certificats et secrets.
Dans l’onglet Secrets client, sélectionnez Nouveau secret client.
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.
Dans le volet Certificats et secrets, sous Secrets client, votre secret s’affiche maintenant avec une valeur et un ID de secret.
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
Dans le Portail Azure, recherchez puis sélectionnez votre application web ou votre application API.
Sous Paramètres, sélectionnez Authentification>Ajouter un fournisseur d’identité.
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.
À présent, créez une identité d’application pour votre application web ou votre application API comme suit :
Pour Type d’inscription d’application, sélectionnez Créer une inscription d’application.
Pour Nom, indiquez le nom de votre identité d’application.
Pour Types de comptes pris en charge, sélectionnez les types de comptes appropriés pour votre scénario.
Pour Restreindre l’accès, sélectionnez Exiger l’authentification.
Pour Requêtes non authentifiées, sélectionnez l’option en fonction de votre scénario.
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é :
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
Dans le menu de navigation de votre application web, sélectionnez Authentification.
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.
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.
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 :
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.
Ouvrez la définition de votre application logique en mode Code.
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.