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
- 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 JPA de datos de Spring para aprovisionar un Azure SQL Database y conseguir que funcione con una aplicación de Java de forma local.
- Siga el tutorial 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 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
- Procedimiento para obtener acceso al blob de almacenamiento con identidad administrada en Azure Spring Apps
- Cómo habilitar la identidad administrada asignada por el sistema para aplicaciones de Azure Spring Apps
- ¿Qué son las identidades administradas de recursos de Azure?
- Autenticación de Azure Spring Apps con Key Vault en Acciones de GitHub