Utiliser une identité managée pour connecter Azure SQL Database à une application déployée dans Azure Spring Apps

Remarque

Azure Spring Apps est le nouveau nom du service Azure Spring Cloud. Bien que le service ait un nouveau nom, vous verrez l’ancien nom à divers endroits pendant un certain temps, car nous travaillons à mettre à jour les ressources telles que les captures d’écran, les vidéos et les diagrammes.

Cet article s’applique à : ✔️ Java ✔️ C#

Cet article s’applique au : Niveau ✔️ De base/Standard ✔️ Entreprise

Cet article explique comment créer une identité managée pour une application déployée sur Azure Spring Apps et 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 à une base de données Azure SQL avec une identité managée en suivant des étapes manuelles ou en utilisant service Connecter or.

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