Partager via


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

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