Utiliser une identité managée pour connecter Azure SQL Database à une application déployée dans 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 s’applique à :✅ Java ✅ C#
Cet article s’applique à :✅ Essentiel/Standard ✅ Entreprise
Cet article vous montre comment créer une identité managée pour une application déployée vers Azure Spring Apps et comment l’utiliser pour accéder à Azure SQL Database.
Azure SQL Database est le service de bases de données relationnelles, évolutif et intelligent, conçu pour le cloud. Il est toujours à jour, avec des fonctionnalités automatisées et alimentées par l’IA qui optimisent les performances et la durabilité. Les options de stockage Hyperscale et de calcul serverless mettent automatiquement à l’échelle les ressources à la demande, ce qui vous permet de vous concentrer sur la création de nouvelles applications sans vous soucier de la taille du stockage ou de la gestion des ressources.
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Azure CLI version 2.45.0 ou ultérieure.
- Suivez le tutoriel sur Spring Data JPA pour approvisionner une base de données Azure SQL et la faire fonctionner avec une application Java localement.
- Suivez le tutoriel sur les identités managées affectées par le système pour Azure Spring Apps afin d’approvisionner une application Azure Spring Apps avec une identité managée activée.
Se connecter à Azure SQL Database avec une identité managée
Vous pouvez connecter votre application à l’Azure SQL Database avec une identité managée en suivant les étapes manuelles ou en utilisant le Connecteur de services.
Accorder l’autorisation à l’identité managée
Connectez-vous à votre serveur SQL et exécutez la requête SQL suivante :
CREATE USER [<managed-identity-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<managed-identity-name>];
ALTER ROLE db_datawriter ADD MEMBER [<managed-identity-name>];
ALTER ROLE db_ddladmin ADD MEMBER [<managed-identity-name>];
GO
La valeur de l’espace réservé <managed-identity-name>
suit la règle <service-instance-name>/apps/<app-name>
; par exemple : myspringcloud/apps/sqldemo
. Vous pouvez également utiliser la commande suivante pour interroger le nom de l’identité managée avec Azure CLI :
az ad sp show --id <identity-object-ID> --query displayName
Configurer votre application Java pour utiliser une identité managée
Ouvrez le fichier src/main/resources/application.properties, puis ajoutez Authentication=ActiveDirectoryMSI;
à la fin de la ligne spring.datasource.url
, comme illustré dans l’exemple suivant. Veillez à utiliser la valeur appropriée pour la variable $AZ_DATABASE_NAME.
spring.datasource.url=jdbc:sqlserver://$AZ_DATABASE_NAME.database.windows.net:1433;database=demo;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;Authentication=ActiveDirectoryMSI;
Générer et déployer l’application sur Azure Spring Apps
Regénérez l’application et déployez-la sur l’application Azure Spring Apps provisionnée lors de la deuxième puce de la section Prérequis. Vous disposez maintenant d’une application Spring Boot, authentifiée par une identité managée, qui utilise JPA pour stocker et récupérer des données à partir d’une base de données Azure SQL dans Azure Spring Apps.
Étapes suivantes
- Comment accéder à un objet blob de stockage avec une identité managée dans Azure Spring Apps
- Guide pratique pour activer une identité managée affectée par le système pour des applications dans Azure Spring Apps
- Que sont les identités managées pour les ressources Azure ?
- Authentifier Azure Spring Apps avec Key Vault dans GitHub Actions