Uso de una identidad administrada para conectar Azure SQL Database a una aplicación implementada en Azure Spring Apps

Nota:

Azure Spring Apps es el nuevo nombre del servicio Azure Spring Cloud. Aunque el servicio tiene un nuevo nombre, verá el nombre antiguo en algunos lugares durante un tiempo mientras trabajamos para actualizar recursos, como capturas de pantalla, vídeos y diagramas.

Este artículo se aplica a: ✔️ Java ✔️ C#

La información de este artículo puede ponerse en práctica en: ✔️ Básico o Estándar ✔️ Enterprise

En este artículo se muestra cómo crear una identidad administrada para una aplicación implementada en Azure Spring Apps y usarla para acceder a Azure SQL Database.

Azure SQL Database es servicio de base de datos relacional inteligente y totalmente administrado creado para la nube. Siempre está actualizado, con características basadas en inteligencia artificial y automatizadas que optimizan el rendimiento y la durabilidad. Las opciones de almacenamiento de proceso e hiperescala sin servidor escalan automáticamente los recursos a petición, por lo que puede centrarse en la creación de nuevas aplicaciones sin preocuparse por el tamaño de almacenamiento o la administración de recursos.

Requisitos previos

  • Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
  • CLI de Azure: versión 2.45.0 o superior.
  • Siga el tutorial de Spring Data JPA para aprovisionar una instancia de Azure SQL Database y obtener que funcione con una aplicación java localmente.
  • Siga el tutorial de identidad administrada asignada por el sistema de Azure Spring Apps para aprovisionar una aplicación en Azure Spring Apps con la identidad administrada habilitada.

Conexión a Azure SQL Database con una identidad administrada

Puede conectar la aplicación a una instancia de Azure SQL Database con una identidad administrada siguiendo los pasos manuales o mediante service Conectar or.

Concesión de permiso a la identidad administrada

Conéctese al servidor SQL y ejecute la siguiente consulta SQL:

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

El valor del marcador de posición <managed-identity-name> sigue la regla <service-instance-name>/apps/<app-name>; por ejemplo: myspringcloud/apps/sqldemo. También puede usar el siguiente comando para consultar el nombre de la identidad administrada con la CLI de Azure:

az ad sp show --id <identity-object-ID> --query displayName

Configuración de la aplicación de Java para usar la identidad administrada

Abra el archivo src/main/resources/application.properties y agregue Authentication=ActiveDirectoryMSI; al final de la línea spring.datasource.url, como se muestra en el ejemplo siguiente. Asegúrese de usar el valor correcto para 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;

Compile e implemente la aplicación en Azure Spring Apps

Vuelva a compilar la aplicación e implementarla en la aplicación Azure Spring Apps aprovisionada en el segundo punto de viñeta de requisitos previos. Ahora tiene una aplicación de Spring Boot autenticada por una identidad administrada que usa JPA para almacenar y recuperar datos de una instancia de Azure SQL Database en Azure Spring Apps.

Pasos siguientes