Activer l’authentification et l’autorisation dans Azure Container Apps avec Microsoft Entra ID
Cet article explique comment configurer l’authentification pour Azure Container Apps afin que votre application utilise la Plateforme d’identités Microsoft comme fournisseur d’authentification pour la connexion des utilisateurs.
La fonctionnalité d’authentification Container Apps peut créer automatiquement une inscription d’application avec la plateforme d’identités Microsoft. Vous pouvez également utiliser une inscription créée séparément par vous-même ou par un administrateur de répertoire.
- Créer une inscription d’application automatiquement
- Utiliser une inscription existante créée séparément
Option 1 : Créer une inscription d’application automatiquement
Cette option est conçue pour simplifier l’authentification et ne nécessite que quelques étapes.
Connectez-vous au Portail Azure et accédez à votre application.
Sélectionnez Authentification dans le menu de gauche. Sélectionnez Ajouter un fournisseur d’identité.
Sélectionnez Microsoft dans la liste déroulante de fournisseurs d’identité. L’option permettant de créer une nouvelle inscription est sélectionnée par défaut. Vous pouvez modifier le nom de l’inscription ou les types de comptes pris en charge.
Une clé secrète client est créée et stockée en tant que clé secrète dans l’application conteneur.
Si vous configurez le premier fournisseur d’identité pour cette application, vous êtes invité à utiliser une section Paramètres d’authentification Container Apps. Sinon, passez à l’étape suivante.
Ces options déterminent la manière dont votre application répond aux requêtes non authentifiées, et les sélections par défaut redirigent toutes les requêtes de connexion à l’aide de ce nouveau fournisseur. Vous pouvez personnaliser ce comportement maintenant ou ajuster ces paramètres ultérieurement à partir de l’écran principal Authentification en choisissant Modifier en regard de Paramètres d’authentification. Pour en savoir plus sur ces options, consultez Flux d’authentification.
(Facultatif) Sélectionnez Suivant : Autorisations et ajoutez les étendues nécessaires à l’application. Les étendues sont ajoutées à l’inscription de l’application, mais vous pouvez également les modifier ultérieurement.
Sélectionnez Ajouter.
Vous êtes maintenant prêt à utiliser la plateforme d’identités Microsoft pour l’authentification dans votre application. Le fournisseur est répertorié sur l’écran Authentification. À partir de là, vous pouvez modifier ou supprimer cette configuration de fournisseur.
Option 2 : Utiliser une inscription existante créée séparément
Vous pouvez également inscrire manuellement votre application pour la plateforme d’identités Microsoft, personnaliser l’inscription et configurer l’authentification Container Apps avec les détails de l’inscription. Cette approche est utile lorsque vous souhaitez utiliser une inscription d’application à partir d’un autre locataire Microsoft Entra que celui dans lequel votre application est définie.
Créer une inscription d’application dans Microsoft Entra ID pour votre application conteneur
Tout d’abord, créez votre inscription d’application. Au cours de cette opération, recueillez les informations suivantes, car vous en aurez besoin plus tard pour configurer l’authentification dans l’application conteneur :
- ID client
- ID client
- Clé secrète client (facultative)
- URI d’ID d’application
Pour inscrire l’application, effectuez les étapes suivantes :
- Connectez-vous au portail Azure.
- Recherchez et sélectionnez Container Apps, puis sélectionnez votre application. Dans la page Vue d’ensemble , notez l’URL de votre application. Utilisez-les pour configurer l’inscription de votre application Microsoft Entra.
- Sélectionnez Accueil pour revenir au menu principal du portail. Recherchez et sélectionnez Microsoft Entra ID.
- Dans la page Vue d’ensemble, sélectionnez Ajouter, puis Inscription d’application.
Sur la page Inscrire une application, entrez un Nom pour votre inscription d'application.
Dans URI de redirection, sélectionnez Web et entrez ce qui suit. Remplacez
\<APP_URL\>
par l’URL d’application que vous avez notée précédemment.<APP_URL>/.auth/login/aad/callback
.Par exemple :
https://<CONTAINER_APP_NAME>.<ENVIRONMENT_UNIQUE_ID>.<REGION_NAME>.azurecontainerapps.io/.auth/login/aad/callback
.Dans Octroi implicite et flux hybrides, activez Jetons d’ID pour autoriser les connexions utilisateur OpenID Connect à partir de Container Apps.
Sélectionnez Inscrire.
- Accédez à la nouvelle inscription d’application.
- Dans la page Vue d’ensemble, copiez l’ID d’application (client) et l’ID d’annuaire (locataire) pour référence ultérieure.
- (Facultatif) Si vous n’avez pas ajouté l’URI de redirection à l’inscription de l’application précédemment, vous pouvez le faire maintenant.
Dans Managé, sélectionnez Authentification.
Dans la page Authentification, dans Configuration de la plateforme, sélectionnez Ajouter une plateforme.
Dans Configurer les plateformes, sélectionnez Web.
Dans Configurer web, dans URI de redirection, entrez ce qui suit. Remplacez
\<APP_URL\>
par l’URL d’application que vous avez notée précédemment.<APP_URL>/.auth/login/aad/callback
.Par exemple :
https://<CONTAINER_APP_NAME>.<HOSTNAME>.<LOCATION>.azurecontainerapps.io/.auth/login/aad/callback
.Sélectionnez Configurer.
- (Facultatif) Dans Gérer, sélectionnez Personnalisation et propriétés. Dans URL de la page d’accueil, entrez l’URL de votre application conteneur, puis sélectionnez Enregistrer.
- Dans Gérer, sélectionnez Exposer une API.
Sélectionnez Définir à côté de URI d’ID d’application.
L’URI d’ID d’application identifie de façon unique votre application lorsqu’elle est utilisée comme ressource, ce qui permet aux jetons demandés d’accorder l’accès. Cette valeur est également utilisée comme préfixe pour les étendues que vous créez.
Pour une application à locataire unique, vous pouvez utiliser la valeur par défaut, qui se présente sous la forme
api://<APPLICATION_CLIENT_ID>
. Vous pouvez également spécifier un URI plus lisible commehttps://contoso.com/api
basé sur l’un des domaines vérifiés pour votre locataire. Pour une application mutualisée, vous devez fournir un URI personnalisé. Pour en savoir plus sur les formats acceptés pour les URI ID d’application, consultez les informations de référence sur les recommandations relatives aux inscriptions d’applications.La valeur est enregistrée automatiquement.
Sélectionnez Ajouter une étendue.
Dans Ajouter une étendue, l’URI d’ID d’application est la valeur que vous avez définie à l’étape précédente.
Sélectionnez Enregistrer et continuer.
Dans Nom de l’étendue, entrez user_impersonation.
Entrez le nom d’affichage du consentement administrateur et la description du consentement administrateur que vous souhaitez que les administrateurs voient dans la page de consentement. Accès <nom-application> est un exemple de nom d’affichage de consentement.
Sélectionnez Ajouter une étendue.
- Dans Gérer, sélectionnez Certificats et secrets.
- Dans la page Certificats et secrets, sélectionnez Secrets client.
- Sélectionnez Nouveau secret client.
- Entrez une Description et sélectionnez quand le secret Expire.
- Sélectionnez Ajouter.
- Copiez la valeur de clé secrète client affichée dans la page, car le site ne l’affichera plus par la suite.
Activer Microsoft Entra ID dans votre application conteneur
Connectez-vous au Portail Azure et accédez à votre application.
Sélectionnez Authentification dans le menu de gauche. Sélectionnez Ajouter un fournisseur d’identité.
Sélectionnez Microsoft dans la liste déroulante de fournisseurs d’identité.
Pour le Type d’inscription de l’application, vous pouvez choisir de Choisir une inscription d’application existante dans ce répertoire, ce qui regroupe automatiquement les informations d’application nécessaires. Si votre inscription provient d’un autre locataire ou si vous n’avez pas l’autorisation d’afficher l’objet d’inscription, choisissez Fournir les détails d’une inscription d’application existante. Pour cette option, vous devez renseigner les détails de configuration suivants :
Avertissement
Dans la mesure du possible, évitez d’utiliser le flux d’octroi implicite. Dans la plupart des scénarios, des alternatives plus sécurisées sont disponibles et recommandées. Certaines configurations de ce flux nécessitent un degré de confiance très élevé dans l’application et comporte des risques qui ne sont pas présents dans d’autres flux. Utilisez ce flux uniquement lorsqu’aucun autre flux plus sécurisé n’est viable. Pour plus d’informations, consultez les problèmes de sécurité liés au flux d’octroi implicite.
Champ Description ID d’application (client) Utilisez l'ID d’application (client) de l’inscription de l’application. Clé secrète client Utilisez la clé secrète client que vous avez générée lors de l’inscription de l’application. Les clés secrètes client utilisent le flux hybride, et l’application retourne les jetons d’accès et d’actualisation. Lorsque la clé secrète client n’est pas définie, le flux implicite est utilisé et seul un jeton d’ID est retourné. Le fournisseur envoie les jetons et ils sont stockés dans le magasin de jetons EasyAuth. URL de l’émetteur Utilisez <authentication-endpoint>/<TENANT-ID>/v2.0
, puis remplacez <authentication-endpoint> par le point de terminaison d’authentification pour votre environnement cloud (par exemple, « https://login.microsoftonline.com" » pour Azure global), puis <TENANT-ID> par l’ID du répertoire (locataire) dans lequel l’inscription de l’application a été créée. Cette valeur sert à rediriger les utilisateurs vers le bon locataire Microsoft Entra, et à télécharger les métadonnées appropriées pour déterminer les clés de signature de jetons et la valeur de revendication de l’émetteur de jeton qui conviennent, par exemple. Pour les applications qui utilisent Azure AD v1, omettez/v2.0
dans l’URL.Audiences de jeton autorisées L’ID d’application client configuré est toujours implicitement considéré comme une audience autorisée. Si cette valeur fait également référence à une application cloud ou serveur et que vous souhaitez accepter des jetons d’authentification à partir d’une application conteneur cliente (le jeton d’authentification peut être récupéré dans l'en-tête X-MS-TOKEN-AAD-ID-TOKEN
), ajoutez ici l'ID d’application (client) de l’application cliente.La clé secrète client est stockée en tant que secrets dans votre application conteneur.
S’il s’agit du premier fournisseur d’identité configuré pour l’application, vous êtes également invité à fournir une section Paramètres d’authentification Container Apps. Sinon, passez à l’étape suivante.
Ces options déterminent la manière dont votre application répond aux requêtes non authentifiées, et les sélections par défaut redirigent toutes les requêtes de connexion à l’aide de ce nouveau fournisseur. Vous pouvez modifier ce comportement maintenant ou ajuster ces paramètres ultérieurement à partir de l’écran principal Authentification en choisissant Modifier en regard de Paramètres d’authentification. Pour en savoir plus sur ces options, consultez Flux d’authentification.
Sélectionnez Ajouter.
Vous êtes maintenant prêt à utiliser la plateforme d’identités Microsoft pour l’authentification dans votre application. Le fournisseur est répertorié sur l’écran Authentification. À partir de là, vous pouvez modifier ou supprimer cette configuration de fournisseur.
Configurer des applications clientes pour qu’elles accèdent à votre application conteneur
Dans la section précédente, vous avez inscrit votre application conteneur pour authentifier les utilisateurs. Dans cette section, vous inscrivez des applications clientes ou démon natives. Elles peuvent ensuite demander l’accès aux API exposées par votre application conteneur pour le compte des utilisateurs ou pour eux-mêmes. Il n’est pas nécessaire d’effectuer les étapes de cette section si vous souhaitez uniquement authentifier les utilisateurs.
Application cliente native
Vous pouvez inscrire des clients natifs afin qu’ils puissent demander l’accès aux API de votre application conteneur pour le compte d’un utilisateur connecté.
Dans le Portail Azure, sélectionnez Microsoft Entra ID>Ajouter>Inscriptions d’applications.
Sur la page Inscrire une application, entrez un Nom pour votre inscription d'application.
Dans URI de redirection, sélectionnez Client public (mobile et bureau) et entrez l’URL
<app-url>/.auth/login/aad/callback
. Par exemple,https://<hostname>.azurecontainerapps.io/.auth/login/aad/callback
Remarque
Pour une application Microsoft Store, utilisez plutôt le SID de package en guise d’URI.
Sélectionnez Créer.
Une fois l’inscription d’application créée, copiez la valeur de l’ID d’application (client) .
Sélectionnez Autorisations des API>Ajouter une autorisation>Mes API.
Sélectionnez l’inscription d'application que vous avez créée précédemment pour votre application conteneur. Si celle-ci n’apparaît pas, vérifiez que vous avez ajouté l’étendue user_impersonation dans Créer une inscription d’application dans Microsoft Entra ID pour votre application conteneur.
Sous Autorisations déléguées, sélectionnez user_impersonation, puis Ajouter des autorisations.
Dans cette section, vous avez configuré une application cliente native qui peut demander l’accès à votre application conteneur pour le compte d’un utilisateur.
Application cliente démon (appels de service à service)
Votre application peut acquérir un jeton pour appeler une API web hébergée dans votre application conteneur pour son propre compte (et non pour le compte d’un utilisateur). Ce scénario est utile pour les applications de démon non interactives qui effectuent des tâches sans utilisateur connecté. Il utilise l’octroi d’informations d’identification du client OAuth 2.0 standard.
- Dans le Portail Azure, sélectionnez Microsoft Entra ID>Ajouter>Inscriptions d’applications.
- Dans la page Inscrire une application, entrez un Nom pour votre inscription d’application.
- Pour une application démon, vous n’avez pas besoin d’un URI de redirection. Vous pouvez donc conserver cette zone vide.
- Sélectionnez Créer.
- Une fois l’inscription d’application créée, copiez la valeur de l’ID d’application (client) .
- Sélectionnez Certificats & secrets>Nouvelle clé secrète client>Ajouter. Copiez la valeur de la clé secrète client qui s'affiche sur la page. Elle ne s’affichera plus.
Vous pouvez maintenant demander un jeton d’accès à l’aide de l’ID client et de la clé secrète client en définissant le paramètre resource
sur l’URI d’ID d’application de l’application cible. Le jeton d’accès obtenu peut ensuite être présenté à l’application cible à l’aide de l’en-tête d’autorisation OAuth 2.0 standard. La fonction Authentification/autorisation Container Apps valide et utilise le jeton comme d’habitude pour indiquer que l’appelant (en l’occurrence, une application, pas un utilisateur) est authentifié.
Ce processus permet à n’importe quelle application cliente de votre locataire Microsoft Entra de demander un jeton d’accès et de s’authentifier auprès de l’application cible. Si vous souhaitez également appliquer un autorisation pour n’autoriser que certaines applications clientes, vous devez ajuster la configuration.
- Définissez un rôle d’application dans le manifeste de l’inscription d’application représentant l’application conteneur que vous souhaitez protéger.
- Sur l’inscription de l’application représentant le client qui doit être autorisé, sélectionnez Autorisations de l’API>Ajouter une autorisation>Mes API.
- Sélectionnez l’inscription d’application que vous avez créée précédemment. Si vous ne voyez pas l’inscription d’application, assurez-vous que vous avez ajouté un rôle d’application.
- Sous Autorisations d’application, choisissez le rôle d’application que vous avez créé précédemment, puis sélectionnez Ajouter des autorisations.
- Veillez à sélectionner Accorder un consentement administrateur pour autoriser l’application cliente à demander l’autorisation.
- Comme pour le scénario précédent (avant l’ajout de rôles), vous pouvez maintenant demander un jeton d’accès pour la même
resource
cible, et le jeton d’accès inclut une revendicationroles
contenant les rôles d’application qui ont été autorisés pour l’application cliente. - Dans le code Container Apps cible, validez que les rôles attendus sont désormais présents dans le jeton. La couche d’authentification Container Apps n’effectue pas les étapes de validation. Pour plus d’informations, consultez la section Revendications d’utilisateurs d’accès.
Dans cette section, vous avez configuré une application cliente démon qui peut accéder à votre application conteneur en utilisant sa propre identité.
Utilisation d’utilisateurs authentifiés
Utilisez les guides suivants pour plus d’informations sur l’utilisation des utilisateurs authentifiés.
- Personnaliser la connexion et la déconnexion
- Accéder aux revendications de l’utilisateur dans le code de l’application