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.
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.
Mettez à jour le code de votre API : protégez votre API en appliquant l’authentification par certificat 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 (inscription d’application) : une pour votre ressource d’application logique et une 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 à configurer cette identité qu’une seule fois pour votre locataire. 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 la zone de recherche du portail Azure , recherchez et sélectionnez Microsoft Entra ID.
Vérifiez que vous êtes dans le même locataire que votre application web ou votre application API.
Conseil
Pour changer de locataire, à partir de la barre de titre Azure, ouvrez votre profil, puis sélectionnez Changer de répertoire.
Dans le menu des ressources du locataire, sous Gérer, sélectionnez Inscriptions d’applications.
La page Inscriptions d’applications affiche toutes les inscriptions d’applications dans votre locataire. Pour afficher uniquement vos inscriptions d’applications, sélectionnez Applications détenues.
Dans la barre d’outils, sélectionnez Nouvelle inscription.
Dans la page Inscrire une application , procédez comme suit :
Pour Nom, fournissez un nom convivial et accessible par l’utilisateur pour l’identité d’application de votre application logique.
Sous Types de comptes pris en charge, sélectionnez l’option qui décrit le mieux les types de comptes qui peuvent utiliser l’identité de l’application ou accéder à votre API.
Sous URI de redirection, sélectionnez Web comme plateforme. En regard de cette option, fournissez une URL unique pour l’emplacement pour retourner la réponse d’authentification.
Lorsque vous avez terminé, sélectionnez Inscrire.
L’onglet Applications détenues affiche désormais 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 la page Vue d’ensemble , sous Essentials, copiez et enregistrez l’ID d’application (client) à utiliser comme ID client pour votre application logique dans la partie 3.
Dans le menu Identité de l’application, sous Gérer, sélectionnez Certificats &secrets.
Dans la page Secrets client , sélectionnez Nouveau secret client.
Dans le volet Ajouter un secret client , pour Description, indiquez un nom pour votre secret. Pour Expire, sélectionnez une durée pour 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 la page Certificats &secrets , sous l’onglet Secrets client , votre secret s’affiche maintenant avec une valeur secrète 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.
Dans la section Fournisseur d’identité, la nouvelle identité d’application pour votre application web ou application API s’affiche maintenant :
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 votre application web, sous Gérer, sélectionnez Authentification.
Dans la section Fournisseur d’identité , recherchez votre identité d’application créée précédemment. Sélectionnez le nom de l’identité de l’application.
Dans la page Vue d’ensemble, recherchez les valeurs de l’ID d’application (client) et de l’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/<tenant-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, apprenez comment configurer l’authentification mutuelle TLS.
Important
Sécurisez et protégez toujours les données sensibles et personnelles, telles que les informations d’identification, les secrets, les clés d’accès, les chaînes de connexion, les certificats, les empreintes numériques et les informations similaires avec le niveau de sécurité le plus élevé disponible ou pris en charge.
Veillez à stocker ces informations en toute sécurité à l’aide de Microsoft Entra ID et Azure Key Vault. Ne codez pas ces informations en dur, partagez-les avec d’autres utilisateurs ou enregistrez en texte brut partout où d’autres utilisateurs peuvent y accéder. Établissez un plan pour la rotation ou la révocation des secrets en cas de compromission. Pour plus d’informations, consultez les ressources suivantes :
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 accéder au certificat client (fichier PFX). |
pfx |
Oui | Contenu codé en base64 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. Bien que l’authentification de base soit un modèle courant et que vous pouvez utiliser cette authentification dans n’importe quel langage utilisé pour générer votre application web ou votre application API, utilisez toujours le meilleur niveau d’authentification disponible ou pris en charge.
Avertissement
Microsoft recommande contre l’utilisation des flux suivants pour l’authentification et l’autorisation :
Informations d’identification de mot de passe du propriétaire de la ressource (ROPC) pour OAuth 2.0
Ce flux vous permet de vous connecter à une application avec un mot de passe. Le flux n’est pas compatible avec l’authentification multifacteur (MFA), nécessite un degré de confiance très élevé dans l’application et comporte des risques qui n’existent pas dans d’autres flux. Utilisez ce flux uniquement si d’autres flux plus sécurisés ne sont pas pris en charge ou disponibles.
Pour plus d’informations, consultez les informations d’identification du mot de passe du propriétaire de la ressource Oauth 2.0.
Flux d’octroi implicite pour OAuth 2.0
Ce flux basé sur des jetons est destiné aux applications web traditionnelles où le serveur a un contrôle plus sécurisé sur le traitement des
POSTdonnées et est souvent utilisé avec le flux de code d’autorisation. En raison de la façon dont ce flux gère et retourne des jetons d’ID ou des jetons d’accès, le flux nécessite un degré de confiance très élevé dans l’application et comporte des risques qui n’existent pas dans d’autres flux. Utilisez ce flux uniquement lorsque d’autres flux plus sécurisés ne sont pas pris en charge ou disponibles.Pour plus d’informations, consultez le flux d’octroi implicite OAuth 2.0.
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 | Nom d’utilisateur que vous souhaitez utiliser pour l’authentification. |
password |
Oui | 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.
