Compartir vía


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

Nota:

Los planes de Básico, Estándar y Enterprise quedarán en desuso a partir de mediados de marzo de 2025, con un período de retiro de 3 años. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte el anuncio de retirada de Azure Spring Apps.

El plan de consumo estándar y dedicado quedará obsoleto a partir del 30 de septiembre de 2024, con un cierre completo al cabo de seis meses. Se recomienda realizar la transición a Azure Container Apps. Para obtener más información, consulte Migrar el plan de consumo y dedicado Azure Spring Apps Standard a Azure Container Apps.

Este artículo se aplica a:✅ Java ✅ C#

Este artículo se aplica a:✅ Básico/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

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 Connector.

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 Azure SQL Database en Azure Spring Apps.

Pasos siguientes