Démarrage rapide : déployer une application API RESTful sur Azure Spring Apps
Remarque
Les plans Essentiel, Standard et Entreprise seront déconseillés à compter de la mi-mars 2025, avec une période de mise hors service de 3 ans. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez l’annonce de mise hors service d’Azure Spring Apps.
Le plan de consommation standard et dédiée sera déconseillé à compter du 30 septembre 2024, avec un arrêt complet après six mois. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez Migrer le plan de consommation standard et dédiée Azure Spring Apps vers Azure Container Apps.
Cet article décrit comment déployer une application API RESTful protégée par Microsoft Entra ID sur Azure Spring Apps. L’exemple de projet est une version simplifiée basée sur l’application web Simple Todo, qui fournit uniquement le service backend et utilise Microsoft Entra ID pour protéger les API RESTful.
Ces API RESTful sont protégées grâce à l’application du contrôle d’accès en fonction du rôle (RBAC). Les utilisateurs anonymes ne peuvent pas accéder à des données et ne sont pas autorisés à contrôler l’accès pour différents utilisateurs. Les utilisateurs anonymes disposent uniquement des trois autorisations suivantes :
- Lecture : avec cette autorisation, un utilisateur peut lire les données ToDo.
- Écriture : avec cette autorisation, un utilisateur peut ajouter ou mettre à jour les données ToDo.
- Suppression : avec cette autorisation, un utilisateur peut supprimer les données ToDo.
Une fois le déploiement réussi, vous pouvez afficher et tester les API via l’interface utilisateur Swagger.
Le diagramme suivant présente l’architecture du système :
Cet article décrit les options suivantes pour créer des ressources et les déployer sur Azure Spring Apps :
- L’option Portail Azure + plug-in Maven fournit un moyen plus conventionnel de créer des ressources et de déployer des applications pas à pas. Cette option convient aux développeurs Spring qui utilisent les services cloud Azure pour la première fois.
- L’option Azure Developer CLI est un moyen plus efficace de créer automatiquement des ressources et de déployer des applications par le biais de commandes simples. Azure Developer CLI utilise un modèle pour provisionner les ressources Azure nécessaires et déployer le code de l’application. Cette option convient aux développeurs Spring qui sont familiarisés avec les services cloud Azure.
Cet article décrit les options suivantes pour créer des ressources et les déployer sur Azure Spring Apps :
- L’option Portail Azure + plug-in Maven fournit un moyen plus conventionnel de créer des ressources et de déployer des applications pas à pas. Cette option convient aux développeurs Spring qui utilisent les services cloud Azure pour la première fois.
- L'option Azure CLI utilise un puissant outil de ligne de commande pour gérer les ressources Azure. Cette option convient aux développeurs Spring qui sont familiarisés avec les services cloud Azure.
1. Prérequis
Un abonnement Azure. Si vous n’en avez pas, créez un compte gratuit Azure avant de commencer.
Un des rôles suivants :
- Administrateur général ou Administrateur de rôle privilégié, pour l’octroi de consentement pour les applications qui demandent une autorisation pour toute API.
- Administrateur d’application cloud ou Administrateur d’application pour l’octroi de consentement pour les applications qui demandent une autorisation pour toute API, à l’exception des rôles d’application Microsoft Graph (autorisations d’application).
- Rôle d’annuaire personnalisé qui comprend l’autorisation d’accorder des autorisations aux applications, pour les autorisations requises par l’application.
Pour plus d’informations, consultez Accorder le consentement administrateur au niveau locataire à une application.
Si vous déployez une instance du plan Entreprise Azure Spring Apps pour la première fois dans l’abonnement cible, consultez la section Exigences du Plan Entreprise dans la Place de marché Azure.
Git.
Kit de développement Java (JDK), version 17.
Un locataire Microsoft Entra. Pour obtenir des instructions sur la création d’un locataire, consultez Démarrage rapide : créer un locataire dans Microsoft Entra ID.
Un abonnement Azure : si vous n’en avez pas, créez un compte Azure gratuit avant de commencer.
Un des rôles suivants :
- Administrateur général ou Administrateur de rôle privilégié, pour l’octroi de consentement pour les applications qui demandent une autorisation pour toute API.
- Administrateur d’application cloud ou Administrateur d’application pour l’octroi de consentement pour les applications qui demandent une autorisation pour toute API, à l’exception des rôles d’application Microsoft Graph (autorisations d’application).
- Rôle d’annuaire personnalisé qui comprend l’autorisation d’accorder des autorisations aux applications, pour les autorisations requises par l’application.
Pour plus d’informations, consultez Accorder le consentement administrateur au niveau locataire à une application.
Git.
Kit de développement Java (JDK), version 17.
Un locataire Microsoft Entra. Pour obtenir des instructions sur la création d’un locataire, consultez Démarrage rapide : créer un locataire dans Microsoft Entra ID.
2. Préparer le projet Spring
Pour déployer l’application API RESTful, la première étape consiste à préparer le projet Spring afin de l’exécuter localement.
Procédez comme suit pour cloner et exécuter l’application localement :
Utilisez la commande suivante pour cloner l’exemple de projet à partir de GitHub :
git clone https://github.com/Azure-Samples/ASA-Samples-Restful-Application.git
Si vous souhaitez exécuter l’application localement, commencez par suivre les étapes décrites dans les sections Exposer les API RESTful et Mettre à jour la configuration de l’application, puis utilisez la commande suivante pour exécuter l’exemple d’application avec Maven :
cd ASA-Samples-Restful-Application ./mvnw spring-boot:run
3. Préparer l’environnement cloud
Pour exécuter cet exemple d’application, les principales ressources requises sont une instance Azure Spring Apps et une instance Azure Database pour PostgreSQL. Dans les sections suivantes, découvrez comment créer ces ressources.
3.1. Connectez-vous au portail Azure.
Accédez au Portail Microsoft Azure et entrez vos informations d’identification pour vous connecter au portail. Il s’ouvre par défaut sur le tableau de bord des services.
3.2. Créer une instance Azure Spring Apps
Utilisez les étapes suivante pour créer une instance de service Azure Spring Apps :
Sélectionnez Créer une ressource dans le coin du portail Azure.
Sélectionnez Calcul>Azure Spring Apps.
Remplissez le formulaire Informations de base avec les informations suivantes :
Paramètre Valeur suggérée Description Abonnement Nom de votre abonnement. Abonnement Azure que vous souhaitez utiliser pour votre serveur. Si vous disposez de plusieurs abonnements, choisissez celui dans lequel vous souhaitez que la ressource soit facturée. Groupe de ressources myresourcegroup Un nouveau nom de groupe de ressources ou un nom de groupe existant dans votre abonnement. Nom myasa Nom unique qui identifie votre instance Azure Spring Apps. Le nom doit comporter entre 4 et 32 caractères, et contenir uniquement des lettres minuscules, des chiffres et des traits d’union. Le premier caractère du nom du service doit être une lettre, et le dernier doit être une lettre ou un chiffre. Planifier Entreprise Plan tarifaire qui détermine la ressource et le coût associés à votre instance. Région La région la plus proche de vos utilisateurs. L’emplacement géographique le plus proche de vos utilisateurs. Redondant interzone Non sélectionné Option permettant de créer votre service Azure Spring Apps dans une zone de disponibilité Azure. Cette fonctionnalité n’est actuellement pas prise en charge dans toutes les régions. Plan IP logiciel Paiement à l’utilisation Plan tarifaire qui vous permet de payer au fur et à mesure à l’aide d’Azure Spring Apps. Terms Volumes sélectionnés Case à cocher du contrat associée à l’offre de la Place de marché. Vous devez cocher cette case. Déployer l’exemple de projet Non sélectionné Option permettant d’utiliser l’exemple d’application intégré. Sélectionnez Vérifier et créer pour passer en revue vos sélections. Ensuite, sélectionnez Créer pour approvisionner l’instance Azure Spring Apps.
Dans la barre d’outils, sélectionnez l’icône Notifications (en forme de cloche) pour surveiller le processus de déploiement. Une fois le déploiement terminé, vous pouvez sélectionner Épingler au tableau de bord, ce qui crée une vignette pour ce service dans votre tableau de bord du Portail Microsoft Azure, en tant que raccourci vers la page Vue d’ensemble du service.
Sélectionnez Accéder à la ressource pour accéder à la page Vue d’ensemble d’Azure Spring Apps.
3.3. Préparer l’instance PostgreSQL
Suivez la procédure ci-dessous pour créer un serveur Azure Database pour PostgreSQL :
Accédez au Portail Azure et sélectionnez Créer une ressource.
Sélectionnez Bases de données>Azure Database pour PostgreSQL.
Sélectionnez l’option de déploiement Serveur flexible.
Renseignez l’onglet Informations de base avec les informations suivantes :
- Nom du serveur : my-demo-pgsql
- Région : USA Est
- Version PostgreSQL : 14
- Type de charge de travail : Développement
- Activer la haute disponibilité : désélectionné
- Méthode d’authentification : Authentification PostgreSQL uniquement
- Nom d’utilisateur administrateur : myadmin
- Mot de passe et Confirmer le mot de passe : entrez un mot de passe.
Utilisez les informations suivantes pour configurer l’onglet Mise en réseau :
- Méthode de connectivité : Accès public (adresses IP autorisées)
- Autoriser l’accès public à partir d’un service Azure dans Azure sur ce serveur : sélectionné
Sélectionnez Examiner et créer pour passer en revue vos sélections, puis sélectionnez Créer pour approvisionner le serveur. Cette opération peut prendre quelques minutes.
Accédez à votre serveur PostgreSQL dans le portail Azure. Dans la page Vue d’ensemble, recherchez la valeur Nom du serveur, puis enregistrez-la pour une utilisation ultérieure. Vous devez configurer les variables d’environnement de l’application dans Azure Spring Apps.
Sélectionnez Bases de données dans le menu de navigation pour créer une base de données, par exemple ; todo.
3.4. Connecter une instance d’application à une instance PostgreSQL
Suivez la procédure ci-dessous pour connecter vos instances de service :
Accédez à votre instance Azure Spring Apps dans le portail Azure.
Dans le menu de navigation, ouvrez Applications, puis sélectionnez Créer une application.
Dans la page Créer une application, renseignez le nom de l’application simple-todo-api, puis sélectionnez Artefacts Java comme type de déploiement.
Sélectionnez Créer pour terminer la création de l’application, puis sélectionnez l’application pour en afficher les détails.
Accédez à l’application que vous avez créée dans le Portail Azure. Dans la page Vue d’ensemble, sélectionnez Attribuer un point de terminaison pour exposer le point de terminaison public pour l’application. Enregistrez l’URL pour accéder à l’application après le déploiement.
Sélectionnez Connecteur de service dans le volet de navigation, puis sélectionnez Créer pour créer une nouvelle connexion de service.
Renseignez l’onglet Informations de base avec les informations suivantes :
- Type de service : Serveur flexible DB pour PostgreSQL
- Nom de connexion : un nom généré automatiquement est rempli et peut également être modifié.
- Abonnement : sélectionnez votre abonnement.
- Serveur flexible PostgreSQL : my-demo-pgsql
- Base de données PostgreSQL : sélectionnez la base de données que vous avez créée.
- Type de client : SpringBoot
Configurez l’onglet Suivant : Authentification avec les informations suivantes :
- Sélectionnez le type d’authentification que vous souhaitez utiliser entre votre service de calcul et le service cible. : sélectionnez Chaîne de connexion.
- Continuer avec... : sélectionnez Informations d’identification de la base de données
- Nom d’utilisateur : myadmin
- Mot de passe : entrez votre mot de passe.
Sélectionnez Suivant : Réseau. Utilisez l’option par défaut Configurer des règles de pare-feu pour activer l’accès au service cible.
Sélectionnez Vérifier + créer pour passer en revue vos sélections, puis sélectionnez Créer pour créer la connexion.
3.5. Exposer les API RESTful
Pour exposer vos API RESTful dans Microsoft Entra ID, procédez comme suit :
Connectez-vous au portail Azure.
Si vous avez accès à plusieurs locataires, utilisez le filtre Répertoire + abonnement () pour sélectionner le locataire dans lequel vous voulez inscrire une application.
Recherchez et sélectionnez Microsoft Entra ID.
Sous Gérer, sélectionnez Inscriptions d’applications>Nouvelle inscription.
Entrez un nom pour votre application dans le champ Nom, par exemple, Todo. Les utilisateurs de votre application peuvent voir ce nom, et vous pouvez le changer ultérieurement.
Pour Types de comptes pris en charge, sélectionnez Comptes de tout répertoire d’organisation (tout répertoire Microsoft Entra : multilocataire) et comptes Microsoft personnels.
Sélectionnez Inscrire pour créer l’application.
Dans la page Vue d’ensemble de l’application, recherchez la valeur ID d’application (client) , puis notez-la pour une utilisation ultérieure. Vous en avez besoin pour configurer le fichier de configuration YAML pour ce projet.
Sous Gérer, sélectionnez Exposer une API, trouvez l’URI de l’ID d’application au début de la page, puis sélectionnez Ajouter.
Dans la page Modifier l’URI de l’ID d’application, acceptez l’URI proposé de l’ID d’application (
api://{client ID}
) ou utilisez un nom utile au lieu de l’ID client, commeapi://simple-todo
, puis sélectionnez Enregistrer.Sous Gérer, sélectionnez Exposer une API>Ajouter une étendue, puis entrez les informations suivantes :
- Pour Nom de l’étendue, entrez ToDo.Read.
- Pour Qui peut donner son consentement ?, sélectionnez Administrateurs et utilisateurs.
- Pour Nom d’affichage du consentement administrateur, entrez Lire les données ToDo.
- Pour Description du consentement administrateur, entrez Autoriser les utilisateurs authentifiés à lire les données ToDo.
- Pour État, maintenez l’état Activé.
- Sélectionnez Ajouter une étendue.
Répétez les étapes précédentes pour ajouter les deux autres étendus : ToDo.Write et ToDo.Delete.
3.6. Mettre à jour la configuration de l’application
Procédez comme suit pour mettre à jour le fichier YAML afin d’utiliser les informations de votre application inscrite Microsoft Entra pour établir une relation avec l’application API RESTful :
Recherchez le fichier src/main/resources/application.yml pour l’application
simple-todo-api
. Mettez à jour la configuration dans la sectionspring.cloud.azure.active-directory
pour qu’elle corresponde à l’exemple suivant. Veillez à remplacer les espaces réservés par les valeurs que vous avez créées précédemment.spring: cloud: azure: active-directory: profile: tenant-id: <tenant> credential: client-id: <your-application-ID-of-ToDo> app-id-uri: <your-application-ID-URI-of-ToDo>
Remarque
Dans les jetons v1.0, la configuration nécessite l’ID client de l’API, tandis que dans les jetons v2.0, vous pouvez utiliser l’ID client ou l’URI d’ID d’application dans la requête. Vous pouvez configurer les deux types de jetons pour effectuer correctement la validation de l’audience.
Les valeurs autorisées pour
tenant-id
sont :common
,organizations
,consumers
ou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez la section Utilisation d’un point de terminaison incorrect (comptes personnels et d’organisation) de l’article Erreur AADSTS50020 : Le compte d’utilisateur du fournisseur d’identité n’existe pas dans le locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en application multilocataire sur Microsoft Entra ID.Utilisez la commande suivante pour régénérer l’échantillon de projet :
./mvnw clean package
4. Déployer l’application sur Azure Spring Apps
Vous pouvez maintenant déployer l’application sur Azure Spring Apps.
Utilisez la procédure suivante pour le déploiement en utilisant le plug-in Maven pour Azure Spring Apps :
Accédez au répertoire complete, puis exécutez la commande suivante pour configurer l’application dans Azure Spring Apps :
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
La liste suivante décrit les interactions de commande :
- Connexion OAuth2 : vous devez autoriser la connexion à Azure en fonction du protocole OAuth2.
- Sélectionnez un abonnement : sélectionnez le numéro de liste d’abonnements de l’instance Azure Spring Apps créée, qui correspond par défaut au premier abonnement de la liste. Si vous utilisez le nombre par défaut, appuyez directement sur Entrée.
- Utiliser Azure Spring Apps dans Azure : appuyez sur y (oui) pour utiliser l’instance Azure Spring Apps existante.
- Sélectionner Azure Spring Apps pour le déploiement : sélectionnez le numéro de l’instance Azure Spring Apps que vous avez créée. Si vous utilisez le nombre par défaut, appuyez directement sur Entrée.
- Utiliser l’application existante dans Azure Spring Apps <your-instance-name> : appuyez sur y (oui) pour utiliser l’application créée.
- Confirmez pour enregistrer toutes les configurations ci-dessus : appuyez sur y (oui). Si vous entrez N, la configuration n’est pas enregistrée dans les fichiers POM.
Utilisez la commande suivante pour déployer l’application :
./mvnw azure-spring-apps:deploy
La liste suivante décrit l’interaction de commande :
- Connexion OAuth2 : vous devez autoriser la connexion à Azure en fonction du protocole OAuth2.
Une fois la commande exécutée, les messages de journal suivants indiquent que le déploiement a réussi :
[INFO] Deployment Status: Running
[INFO] InstanceName:simple-todo-api-default-15-xxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:N/A
[INFO] Getting public url of app(simple-todo-api)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-simple-todo-api.azuremicroservices.io
5. Valider l’application
Vous pouvez désormais accéder à l’API RESTful pour voir si cela fonctionne.
5.1. Demander un jeton d’accès
Les API RESTful agissent en tant que serveur de ressources, qui est protégé par Microsoft Entra ID. Avant d’acquérir un jeton d’accès, vous devez inscrire une autre application dans Microsoft Entra ID et accorder des autorisations à l’application cliente, nommée ToDoWeb
.
Inscrire l’application cliente
Procédez comme suit pour inscrire une application dans Microsoft Entra ID, qui est utilisé pour ajouter les autorisations pour l’application ToDo
:
Connectez-vous au portail Azure.
Si vous avez accès à plusieurs locataires, utilisez le filtre Répertoire + abonnement () pour sélectionner le locataire dans lequel vous voulez inscrire une application.
Recherchez et sélectionnez Microsoft Entra ID.
Sous Gérer, sélectionnez Inscriptions d’applications>Nouvelle inscription.
Entrez un nom pour votre application dans le champ Nom, par exemple, ToDoWeb. Les utilisateurs de votre application peuvent voir ce nom, et vous pouvez le changer ultérieurement.
Pour Types de comptes pris en charge, utilisez la valeur par défaut Comptes dans ce répertoire d’organisation uniquement.
Sélectionnez Inscrire pour créer l’application.
Dans la page Vue d’ensemble de l’application, recherchez la valeur ID d’application (client) , puis notez-la pour une utilisation ultérieure. Vous en avez besoin pour obtenir un jeton d'accès.
Sélectionnez Autorisations des API>Ajouter une autorisation>Mes API. Sélectionnez l’application
ToDo
que vous avez inscrite précédemment, puis sélectionnez les autorisations ToDo.Read, ToDo.Write et ToDo.Delete. Sélectionnez Ajouter des autorisations.Sélectionnez Accorder le consentement de l’administrateur pour <votre-nom-de-locataire> afin d’accorder le consentement administrateur aux autorisations que vous avez ajoutées.
Ajouter un utilisateur pour accéder aux API RESTful
Procédez comme suit pour créer un utilisateur membre dans votre locataire Microsoft Entra. Ensuite, l’utilisateur peut gérer les données de l’application ToDo
via des API RESTful.
Sous Gérer, sélectionnez Utilisateurs>Nouvel utilisateur>Créer un utilisateur.
Dans la page Créer un utilisateur, indiquez les informations suivantes :
- Nom d’utilisateur principal : entrez un nom pour l’utilisateur.
- Nom d’affichage : entrez un nom d’affichage pour l’utilisateur.
- Mot de passe : copiez le mot de passe généré automatiquement fourni dans le champ Mot de passe.
Remarque
Les nouveaux utilisateurs doivent effectuer la première authentification de connexion et mettre à jour leurs mots de passe, sinon une erreur
AADSTS50055: The password is expired
s’affiche lorsqu’ils obtiennent le jeton d’accès.Lorsqu’un nouvel utilisateur se connecte, il reçoit une invite Action requise. Il peut choisir Demander ultérieurement pour ignorer la validation.
Sélectionnez Vérifier + créer pour passer en revue vos sélections. Sélectionnez Créer pour créer l’utilisateur.
Mettre à jour la configuration OAuth2 pour l’autorisation de l’interface utilisateur Swagger
Procédez comme suit pour mettre à jour la configuration OAuth2 pour l’autorisation de l’interface utilisateur Swagger. Vous pouvez ensuite autoriser les utilisateurs à acquérir des jetons d’accès via l’application ToDoWeb
.
Ouvrez votre locataire Microsoft Entra ID dans le Portail Azure et accédez à l’application inscrite
ToDoWeb
.Sous Gérer, sélectionnez Authentification, Ajouter une plateforme, puis Application monopage.
Utilisez le format
<your-app-exposed-application-URL-or-endpoint>/swagger-ui/oauth2-redirect.html
comme URL de redirection OAuth2 dans le champ URI de redirection, puis sélectionnez Configurer.
2. Préparer le projet Spring
Pour déployer l’application API RESTful, la première étape consiste à préparer le projet Spring afin de l’exécuter localement.
Procédez comme suit pour cloner et exécuter l’application localement :
Utilisez la commande suivante pour cloner l’exemple de projet à partir de GitHub :
git clone https://github.com/Azure-Samples/ASA-Samples-Restful-Application.git
Si vous souhaitez exécuter l’application localement, commencez par suivre les étapes décrites dans les sections Exposer les API RESTful et Mettre à jour la configuration de l’application, puis utilisez la commande suivante pour exécuter l’exemple d’application avec Maven :
cd ASA-Samples-Restful-Application ./mvnw spring-boot:run
3. Préparer l’environnement cloud
Pour exécuter cet exemple d’application, les principales ressources requises sont une instance Azure Spring Apps et une instance Azure Database pour PostgreSQL. Dans les sections suivantes, découvrez comment créer ces ressources.
3.1. Connectez-vous au portail Azure.
Accédez au Portail Microsoft Azure et entrez vos informations d’identification pour vous connecter au portail. Il s’ouvre par défaut sur le tableau de bord des services.
3.2. Créer une instance Azure Spring Apps
Utilisez la procédure suivante pour créer une instance de service :
Sélectionnez Créer une ressource dans le coin du portail.
Sélectionnez Calcul>Azure Spring Apps.
Remplissez le formulaire Informations de base. Utilisez le tableau suivant comme guide afin de remplir le formulaire. La valeur de Plan recommandée est la Consommation standard et dédiée (préversion).
Paramètre Valeur suggérée Description Abonnement Nom de votre abonnement. Abonnement Azure que vous souhaitez utiliser pour votre serveur. Si vous disposez de plusieurs abonnements, choisissez celui dans lequel vous souhaitez que la ressource soit facturée. Groupe de ressources myresourcegroup Un nouveau nom de groupe de ressources ou un nom de groupe existant dans votre abonnement. Nom myasa Nom unique qui identifie votre instance Azure Spring Apps. Le nom doit comporter entre 4 et 32 caractères, et contenir uniquement des lettres minuscules, des chiffres et des traits d’union. Le premier caractère du nom du service doit être une lettre, et le dernier doit être une lettre ou un chiffre. Planification Consommation standard et dédiée (préversion) Le plan tarifaire détermine les ressources et le coût associés à votre instance. Région La région la plus proche de vos utilisateurs. L’emplacement géographique le plus proche de vos utilisateurs. Environnement Container Apps myenvironment Option permettant de sélectionner l’instance d’environnement Container Apps pour partager le même réseau virtuel avec d’autres services et ressources. Utilisez le tableau suivant comme guide pour créer l’environnement Container Apps :
Paramètre Valeur suggérée Description Nom de l’environnement myenvironment Un nom unique pour identifier votre service d’environnement Azure Container Apps. Planifier Consommation Le plan tarifaire détermine les ressources et le coût associés à votre instance. Redondant interzone Désactivé Option permettant de créer votre service d’environnement Container Apps dans une zone de disponibilité Azure. Sélectionnez Vérifier et créer pour passer en revue vos sélections. Ensuite, sélectionnez Créer pour approvisionner l’instance Azure Spring Apps.
Dans la barre d’outils, sélectionnez l’icône Notifications (en forme de cloche) pour surveiller le processus de déploiement. Une fois le déploiement terminé, vous pouvez sélectionner Épingler au tableau de bord, ce qui crée une vignette pour ce service dans votre tableau de bord du Portail Microsoft Azure, en tant que raccourci vers la page Vue d’ensemble du service.
Sélectionnez Accéder à la ressource pour ouvrir la page Vue d’ensemble du service.
Important
Le profil de charge de travail Consommation a un modèle de facturation de paiement à l’utilisation, sans coût de départ. Vous êtes facturé pour le profil de charge de travail dédié en fonction des ressources approvisionnées. Pour plus d’informations, consultez Profils de charges de travail dans Azure Container Apps et Tarification d’Azure Spring Apps.
3.3. Préparer l’instance PostgreSQL
Suivez la procédure ci-dessous pour créer un serveur Azure Database pour PostgreSQL :
Accédez au Portail Azure et sélectionnez Créer une ressource.
Sélectionnez Bases de données>Azure Database pour PostgreSQL.
Sélectionnez l’option de déploiement Serveur flexible.
Renseignez l’onglet Informations de base avec les informations suivantes :
- Nom du serveur : my-demo-pgsql
- Région : USA Est
- Version PostgreSQL : 14
- Type de charge de travail : Développement
- Activer la haute disponibilité : désélectionné
- Méthode d’authentification : Authentification PostgreSQL uniquement
- Nom d’utilisateur administrateur : myadmin
- Mot de passe et Confirmer le mot de passe : entrez un mot de passe.
Utilisez les informations suivantes pour configurer l’onglet Mise en réseau :
- Méthode de connectivité : Accès public (adresses IP autorisées)
- Autoriser l’accès public à partir d’un service Azure dans Azure sur ce serveur : sélectionné
Sélectionnez Examiner et créer pour passer en revue vos sélections, puis sélectionnez Créer pour approvisionner le serveur. Cette opération peut prendre quelques minutes.
Accédez à votre serveur PostgreSQL dans le portail Azure. Dans la page Vue d’ensemble, recherchez la valeur Nom du serveur, puis enregistrez-la pour une utilisation ultérieure. Vous devez configurer les variables d’environnement de l’application dans Azure Spring Apps.
Sélectionnez Bases de données dans le menu de navigation pour créer une base de données, par exemple ; todo.
3.4. Connecter une instance d’application à une instance PostgreSQL
Suivez la procédure ci-dessous pour connecter vos instances de service :
Accédez à votre instance Azure Spring Apps dans le portail Azure.
Dans le menu de navigation, ouvrez Applications, puis sélectionnez Créer une application.
Dans la page Créer une application, renseignez le nom de l’application simple-todo-api, puis sélectionnez Artefacts Java comme type de déploiement.
Sélectionnez Créer pour terminer la création de l’application, puis sélectionnez l’application pour en afficher les détails.
Accédez à l’application que vous avez créée dans le Portail Azure. Dans la page Vue d’ensemble, sélectionnez Attribuer un point de terminaison pour exposer le point de terminaison public pour l’application. Enregistrez l’URL pour accéder à l’application après le déploiement.
Accédez à l’application que vous avez créée, développez Paramètres et sélectionnez Configuration dans le menu de navigation, puis sélectionnez Variables d’environnement pour définir les variables d’environnement.
Ajoutez les variables d’environnement suivantes pour la connexion PostgreSQL, puis sélectionnez Enregistrer pour terminer la mise à jour de configuration de l’application. Veillez à remplacer les espaces réservés par vos propres valeurs que vous avez créées précédemment.
Variable d'environnement Valeur SPRING_DATASOURCE_URL
jdbc:postgresql://<your-PostgreSQL-server-name>:5432/<your-PostgreSQL-database-name>
SPRING_DATASOURCE_USERNAME
<your-PostgreSQL-admin-user>
SPRING_DATASOURCE_PASSWORD
<your-PostgreSQL-admin-password>
3.5. Exposer les API RESTful
Pour exposer vos API RESTful dans Microsoft Entra ID, procédez comme suit :
Connectez-vous au portail Azure.
Si vous avez accès à plusieurs locataires, utilisez le filtre Répertoire + abonnement () pour sélectionner le locataire dans lequel vous voulez inscrire une application.
Recherchez et sélectionnez Microsoft Entra ID.
Sous Gérer, sélectionnez Inscriptions d’applications>Nouvelle inscription.
Entrez un nom pour votre application dans le champ Nom, par exemple, Todo. Les utilisateurs de votre application peuvent voir ce nom, et vous pouvez le changer ultérieurement.
Pour Types de comptes pris en charge, sélectionnez Comptes de tout répertoire d’organisation (tout répertoire Microsoft Entra : multilocataire) et comptes Microsoft personnels.
Sélectionnez Inscrire pour créer l’application.
Dans la page Vue d’ensemble de l’application, recherchez la valeur ID d’application (client) , puis notez-la pour une utilisation ultérieure. Vous en avez besoin pour configurer le fichier de configuration YAML pour ce projet.
Sous Gérer, sélectionnez Exposer une API, trouvez l’URI de l’ID d’application au début de la page, puis sélectionnez Ajouter.
Dans la page Modifier l’URI de l’ID d’application, acceptez l’URI proposé de l’ID d’application (
api://{client ID}
) ou utilisez un nom utile au lieu de l’ID client, commeapi://simple-todo
, puis sélectionnez Enregistrer.Sous Gérer, sélectionnez Exposer une API>Ajouter une étendue, puis entrez les informations suivantes :
- Pour Nom de l’étendue, entrez ToDo.Read.
- Pour Qui peut donner son consentement ?, sélectionnez Administrateurs et utilisateurs.
- Pour Nom d’affichage du consentement administrateur, entrez Lire les données ToDo.
- Pour Description du consentement administrateur, entrez Autoriser les utilisateurs authentifiés à lire les données ToDo.
- Pour État, maintenez l’état Activé.
- Sélectionnez Ajouter une étendue.
Répétez les étapes précédentes pour ajouter les deux autres étendus : ToDo.Write et ToDo.Delete.
3.6. Mettre à jour la configuration de l’application
Procédez comme suit pour mettre à jour le fichier YAML afin d’utiliser les informations de votre application inscrite Microsoft Entra pour établir une relation avec l’application API RESTful :
Recherchez le fichier src/main/resources/application.yml pour l’application
simple-todo-api
. Mettez à jour la configuration dans la sectionspring.cloud.azure.active-directory
pour qu’elle corresponde à l’exemple suivant. Veillez à remplacer les espaces réservés par les valeurs que vous avez créées précédemment.spring: cloud: azure: active-directory: profile: tenant-id: <tenant> credential: client-id: <your-application-ID-of-ToDo> app-id-uri: <your-application-ID-URI-of-ToDo>
Remarque
Dans les jetons v1.0, la configuration nécessite l’ID client de l’API, tandis que dans les jetons v2.0, vous pouvez utiliser l’ID client ou l’URI d’ID d’application dans la requête. Vous pouvez configurer les deux types de jetons pour effectuer correctement la validation de l’audience.
Les valeurs autorisées pour
tenant-id
sont :common
,organizations
,consumers
ou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez la section Utilisation d’un point de terminaison incorrect (comptes personnels et d’organisation) de l’article Erreur AADSTS50020 : Le compte d’utilisateur du fournisseur d’identité n’existe pas dans le locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en application multilocataire sur Microsoft Entra ID.Utilisez la commande suivante pour régénérer l’échantillon de projet :
./mvnw clean package
4. Déployer l’application sur Azure Spring Apps
Vous pouvez maintenant déployer l’application sur Azure Spring Apps.
Utilisez la procédure suivante pour le déploiement en utilisant le plug-in Maven pour Azure Spring Apps :
Accédez au répertoire complete, puis exécutez la commande suivante pour configurer l’application dans Azure Spring Apps :
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
La liste suivante décrit les interactions de commande :
- Connexion OAuth2 : vous devez autoriser la connexion à Azure en fonction du protocole OAuth2.
- Sélectionnez un abonnement : sélectionnez le numéro de liste d’abonnements de l’instance Azure Spring Apps créée, qui correspond par défaut au premier abonnement de la liste. Si vous utilisez le nombre par défaut, appuyez directement sur Entrée.
- Utiliser Azure Spring Apps dans Azure : appuyez sur y (oui) pour utiliser l’instance Azure Spring Apps existante.
- Sélectionner Azure Spring Apps pour le déploiement : sélectionnez le numéro de l’instance Azure Spring Apps que vous avez créée. Si vous utilisez le nombre par défaut, appuyez directement sur Entrée.
- Utiliser l’application existante dans Azure Spring Apps <your-instance-name> : appuyez sur y (oui) pour utiliser l’application créée.
- Confirmez pour enregistrer toutes les configurations ci-dessus : appuyez sur y (oui). Si vous entrez N, la configuration n’est pas enregistrée dans les fichiers POM.
Utilisez la commande suivante pour déployer l’application :
./mvnw azure-spring-apps:deploy
La liste suivante décrit l’interaction de commande :
- Connexion OAuth2 : vous devez autoriser la connexion à Azure en fonction du protocole OAuth2.
Une fois la commande exécutée, les messages de journal suivants indiquent que le déploiement a réussi :
[INFO] Deployment(default) is successfully created
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
[INFO] InstanceName:demo--default-xxxxxxx-xxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:NONE
[INFO] Getting public url of app(demo)...
[INFO] Application url: https://demo.<unique-identifier>.<region-name>.azurecontainerapps.io
5. Valider l’application
Vous pouvez désormais accéder à l’API RESTful pour voir si cela fonctionne.
5.1. Demander un jeton d’accès
Les API RESTful agissent en tant que serveur de ressources, qui est protégé par Microsoft Entra ID. Avant d’acquérir un jeton d’accès, vous devez inscrire une autre application dans Microsoft Entra ID et accorder des autorisations à l’application cliente, nommée ToDoWeb
.
Inscrire l’application cliente
Procédez comme suit pour inscrire une application dans Microsoft Entra ID, qui est utilisé pour ajouter les autorisations pour l’application ToDo
:
Connectez-vous au portail Azure.
Si vous avez accès à plusieurs locataires, utilisez le filtre Répertoire + abonnement () pour sélectionner le locataire dans lequel vous voulez inscrire une application.
Recherchez et sélectionnez Microsoft Entra ID.
Sous Gérer, sélectionnez Inscriptions d’applications>Nouvelle inscription.
Entrez un nom pour votre application dans le champ Nom, par exemple, ToDoWeb. Les utilisateurs de votre application peuvent voir ce nom, et vous pouvez le changer ultérieurement.
Pour Types de comptes pris en charge, utilisez la valeur par défaut Comptes dans ce répertoire d’organisation uniquement.
Sélectionnez Inscrire pour créer l’application.
Dans la page Vue d’ensemble de l’application, recherchez la valeur ID d’application (client) , puis notez-la pour une utilisation ultérieure. Vous en avez besoin pour obtenir un jeton d'accès.
Sélectionnez Autorisations des API>Ajouter une autorisation>Mes API. Sélectionnez l’application
ToDo
que vous avez inscrite précédemment, puis sélectionnez les autorisations ToDo.Read, ToDo.Write et ToDo.Delete. Sélectionnez Ajouter des autorisations.Sélectionnez Accorder le consentement de l’administrateur pour <votre-nom-de-locataire> afin d’accorder le consentement administrateur aux autorisations que vous avez ajoutées.
Ajouter un utilisateur pour accéder aux API RESTful
Procédez comme suit pour créer un utilisateur membre dans votre locataire Microsoft Entra. Ensuite, l’utilisateur peut gérer les données de l’application ToDo
via des API RESTful.
Sous Gérer, sélectionnez Utilisateurs>Nouvel utilisateur>Créer un utilisateur.
Dans la page Créer un utilisateur, indiquez les informations suivantes :
- Nom d’utilisateur principal : entrez un nom pour l’utilisateur.
- Nom d’affichage : entrez un nom d’affichage pour l’utilisateur.
- Mot de passe : copiez le mot de passe généré automatiquement fourni dans le champ Mot de passe.
Remarque
Les nouveaux utilisateurs doivent effectuer la première authentification de connexion et mettre à jour leurs mots de passe, sinon une erreur
AADSTS50055: The password is expired
s’affiche lorsqu’ils obtiennent le jeton d’accès.Lorsqu’un nouvel utilisateur se connecte, il reçoit une invite Action requise. Il peut choisir Demander ultérieurement pour ignorer la validation.
Sélectionnez Vérifier + créer pour passer en revue vos sélections. Sélectionnez Créer pour créer l’utilisateur.
Mettre à jour la configuration OAuth2 pour l’autorisation de l’interface utilisateur Swagger
Procédez comme suit pour mettre à jour la configuration OAuth2 pour l’autorisation de l’interface utilisateur Swagger. Vous pouvez ensuite autoriser les utilisateurs à acquérir des jetons d’accès via l’application ToDoWeb
.
Ouvrez votre locataire Microsoft Entra ID dans le Portail Azure et accédez à l’application inscrite
ToDoWeb
.Sous Gérer, sélectionnez Authentification, Ajouter une plateforme, puis Application monopage.
Utilisez le format
<your-app-exposed-application-URL-or-endpoint>/swagger-ui/oauth2-redirect.html
comme URL de redirection OAuth2 dans le champ URI de redirection, puis sélectionnez Configurer.
Obtenir le jeton d’accès
Procédez comme suit pour utiliser la méthode de flux de code d’autorisation OAuth 2.0 afin d’obtenir un jeton d’accès avec Microsoft Entra ID, puis accédez aux API RESTful de l’applicationToDo
:
Ouvrez l’URL exposée par l’application, puis sélectionnez Autoriser pour préparer l’authentification OAuth2.
Dans la fenêtre Autorisations disponibles, entrez l’ID client de l’application
ToDoWeb
dans le champ client_id, sélectionnez toutes les étendues du champ Étendues. Ignorez le champ client_secret, puis sélectionnez Autoriser pour la redirection vers la page de connexion Microsoft Entra.
Une fois la connexion terminée avec l’utilisateur précédent, vous êtes renvoyé à la fenêtre Autorisations disponibles.
5.2. Accéder aux API RESTful
Pour accéder aux API RESTful de l’application ToDo
dans l’interface utilisateur Swagger, procédez comme suit :
Sélectionnez l’API POST /api/simple-todo/lists, puis sélectionnez Essayer. Entrez le corps de la demande suivant, puis sélectionnez Exécuter pour créer une liste ToDo.
{ "name": "My List" }
Une fois l’exécution terminée, vous voyez le corps de réponse suivant :
{ "id": "<ID-of-the-ToDo-list>", "name": "My List", "description": null }
Sélectionnez l’API POST /api/simple-todo/lists/{listId}/items, puis Essayer. Pour listId, entrez l’ID de liste ToDo que vous avez créé précédemment, entrez le corps de la demande suivant, puis sélectionnez Exécuter pour créer un élément ToDo.
{ "name": "My first ToDo item", "listId": "<ID-of-the-ToDo-list>", "state": "todo" }
Cette action retourne l’élément ToDo suivant :
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": null, "state": "todo", "dueDate": "2023-07-11T13:59:24.9033069+08:00", "completedDate": null }
Sélectionnez l’API GET /api/simple-todo/lists, puis sélectionnez Exécuter pour interroger les listes ToDo. Cette action retourne les listes ToDo suivantes :
[ { "id": "<ID-of-the-ToDo-list>", "name": "My List", "description": null } ]
Sélectionnez l’API GET /api/simple-todo/lists/{listId}/items, puis Essayer. Pour listId, entrez l’ID de liste ToDo que vous avez créé précédemment, puis sélectionnez Exécuter pour créer un élément ToDo. Cette action retourne l’élément ToDo suivant :
[ { "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": null, "state": "todo", "dueDate": "2023-07-11T13:59:24.903307+08:00", "completedDate": null } ]
Sélectionnez l’API PUT /api/simple-todo/lists/{listId}/items/{itemId}, puis Essayer. Pour listId, entrez l’ID de liste ToDo. Pour itemId, entrez l’ID d’élément ToDo, entrez le corps de la demande suivant, puis sélectionnez Exécuter pour mettre à jour l’élément ToDo.
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": "Updated description.", "dueDate": "2023-07-11T13:59:24.903307+08:00", "state": "inprogress" }
Cette action retourne l’élément ToDo mis à jour suivant :
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": "Updated description.", "state": "inprogress", "dueDate": "2023-07-11T05:59:24.903307Z", "completedDate": null }
Sélectionnez l’API DELETE /api/simple-todo/lists/{listId}/items/{itemId}, puis Essayer. Pour listId, entrez l’ID de liste ToDo. Pour itemId, entrez l’ID d’élément ToDo, puis sélectionnez Exécuter pour supprimer l’élément ToDo. Le code de réponse du serveur devrait être
204
.
6. Nettoyer les ressources
Vous pouvez supprimer le groupe de ressources Azure qui inclut toutes les ressources du groupe de ressources.
Pour supprimer l’intégralité du groupe de ressources, y compris le serveur que vous venez de créer, utilisez les étapes suivantes :
Localisez votre groupe de ressources dans le portail Azure.
Dans le menu de navigation, sélectionnez Groupes de ressources. Sélectionnez ensuite le nom de votre groupe de ressources (par exemple, myresourcegroup).
Dans la page de votre groupe de ressources, sélectionnez Supprimer. Pour confirmer la suppression, entrez le nom de votre groupe de ressources dans la zone de texte, par exemple, myresourcegroup. Ensuite, sélectionnez Supprimer.
Pour supprimer l’intégralité du groupe de ressources, y compris le serveur que vous venez de créer, utilisez les étapes suivantes :
Localisez votre groupe de ressources dans le portail Azure.
Dans le menu de navigation, sélectionnez Groupes de ressources. Sélectionnez ensuite le nom de votre groupe de ressources (par exemple, myresourcegroup).
Dans la page de votre groupe de ressources, sélectionnez Supprimer. Pour confirmer la suppression, entrez le nom de votre groupe de ressources dans la zone de texte, par exemple, myresourcegroup. Ensuite, sélectionnez Supprimer.
7. Étapes suivantes
Pour plus d’informations, consultez les articles suivants :