Protección de la conectividad a servicios y bases de datos de Azure desde Azure App Service
Es posible que App Service tenga que conectarse a otros servicios de Azure, como una base de datos, almacenamiento u otra aplicación. En esta introducción se recomiendan diferentes métodos para conectarse y cuándo usarlos.
En la actualidad, la decisión de un enfoque de conectividad está estrechamente relacionada con la administración de secretos. El patrón común de usar secretos de conexión en cadenas de conexión, como nombre de usuario y contraseña, clave secreta, etc. ya no se considera el enfoque más seguro para la conectividad. El riesgo es aún mayor hoy en día porque los actores de amenazas rastrean regularmente los repositorios públicos de GitHub en busca de secretos de conexión comprometidos accidentalmente. En el caso de las aplicaciones en la nube, la mejor administración de secretos es no tener secretos. Al migrar a Azure App Service, es posible que su aplicación comience con una conectividad basada en secretos, y App Service le permite mantener los secretos de forma segura. Sin embargo, Azure puede ayudar a proteger la conectividad de back-end de la aplicación a través de la autenticación de Microsoft Entra, lo que elimina los secretos por completo de la aplicación.
Método de conexión | Cuándo se deben usar |
---|---|
Conectarse con una identidad de aplicación | * Desea quitar por completo credenciales, claves o secretos de la aplicación. * El servicio de Azure de bajada admite la autenticación de Microsoft Entra, como Microsoft Graph. * El recurso de bajada no necesita conocer el usuario que ha iniciado sesión actual o no necesita una autorización granular del usuario que ha iniciado sesión actual. |
Conectarse en nombre del usuario que ha iniciado sesión | * La aplicación debe acceder a un recurso de bajada en nombre del usuario que ha iniciado sesión. * El servicio de Azure de bajada admite la autenticación de Microsoft Entra, como Microsoft Graph. * El recurso de bajada debe realizar una autorización granular del usuario que ha iniciado sesión actual. |
Conexión mediante secretos | * El recurso de bajada requiere secretos de conexión. * La aplicación se conecta a servicios que no son de Azure, como un servidor de bases de datos local. * El servicio de Azure de bajada aún no admite la autenticación de Microsoft Entra. |
Conectarse con una identidad de aplicación
Si la aplicación ya usa un único conjunto de credenciales para acceder a un servicio de Azure de bajada, puede convertir rápidamente la conexión para usar una identidad de aplicación en su lugar. Una identidad administrada de Microsoft Entra ID permite a App Service acceder a recursos sin secretos y puede administrar su acceso a través del control de acceso basado en rol (RBAC). Una identidad administrada puede conectarse a cualquier recurso de Azure que admita la autenticación de Microsoft Entra y la autenticación tiene lugar con tokens de corta duración.
En la imagen siguiente se muestra una instancia de App Service que se conecta a otros servicios de Azure:
- A: El usuario visita el sitio web de Azure App Service.
- B: Conectarse de forma segura desde App Service a otro servicio Azure usando una identidad administrada.
- C: Conéctese de forma segura desde App Servicea Microsoft Graph mediante una identidad administrada.
Ejemplos de uso de secretos de aplicación para conectarse a una base de datos:
- Tutorial: Conexión a bases de datos de Azure desde App Service sin secretos mediante una identidad administrada
- Tutorial: Conectar para SQL Database de .NET App Service sin secretos mediante una identidad administrada
- Tutorial: Conexión a una base de datos PostgreSQL desde Java Tomcat App Service sin secretos mediante una identidad administrada
Conectarse en nombre del usuario que ha iniciado sesión
Es posible que la aplicación tenga que conectarse a un servicio de bajada en nombre del usuario que ha iniciado sesión. App Service le permite autenticar fácilmente a los usuarios mediante los proveedores de identidades más comunes (consulte Autenticación y autorización en Azure App Service y Azure Functions). Si usa el proveedor de Microsoft (autenticación de Microsoft Entra), puede pasar el usuario que ha iniciado sesión a cualquier servicio de bajada. Por ejemplo:
- Ejecute una consulta de base de datos que devuelva datos confidenciales que el usuario que ha iniciado sesión está autorizado para leer.
- Recupere datos personales o realice acciones como el usuario que inició sesión en Microsoft Graph.
En la imagen siguiente se muestra una aplicación que accede de forma segura a una base de datos SQL en nombre del usuario que ha iniciado sesión.
Algunos escenarios comunes son los siguientes:
- Conectarse a Microsoft Graph en nombre del usuario
- Conectarse a una base de datos SQL en nombre del usuario
- Conectarse a otra aplicación de App Service en nombre del usuario
- Flujo del usuario que ha iniciado sesión a través de varias capas de servicios de bajada
Conexión mediante secretos
Hay dos maneras recomendadas de usar secretos en la aplicación: usar secretos almacenados en Azure Key Vault o secretos en la configuración de la aplicación de App Service.
Uso de secretos del almacén de claves
Azure Key Vault se puede usar para almacenar de forma segura secretos y claves, supervisar el acceso y el uso de secretos y simplificar la administración de secretos de aplicación. Si el servicio de bajada no admite la autenticación de Microsoft Entra o requiere una cadena de conexión o una clave, use Key Vault para almacenar los secretos y conectar la aplicación a Key Vault con una identidad administrada y recuperar los secretos. La aplicación puede acceder a los secretos del almacén de claves como referencias de Key Vault en la configuración de la aplicación.
Entre las ventajas de las identidades administradas integradas con Key Vault se incluyen:
- El acceso al almacén de claves está restringido a la aplicación.
- Los colaboradores de la aplicación, como los administradores, pueden tener un control completo de los recursos de App Service y, al mismo tiempo, no tienen acceso a los secretos de Key Vault.
- Si el código de la aplicación ya tiene acceso a los secretos de conexión con la configuración de la aplicación, no se requiere ningún cambio en el código.
- Key Vault proporciona supervisión y auditoría de quién ha accedido a los secretos.
- La rotación de secretos del almacén de claves no requiere ningún cambio en App Service.
En la imagen siguiente se muestra la conexión de App Service a Key Vault mediante una identidad administrada y a continuación, el acceso a un servicio de Azure mediante secretos almacenados en Key Vault:
Uso de secretos en la configuración de aplicaciones
En el caso de las aplicaciones que se conectan a servicios mediante secretos (como nombres de usuario, contraseñas y claves de API), App Service puede almacenarlos de forma segura en configuración de la aplicación. Estos secretos se insertan en el código de la aplicación como variables de entorno durante el inicio de la aplicación. La configuración de la aplicación siempre se cifra cuando se almacena (cifrado en reposo). Para la administración de secretos más avanzada, como la rotación de secretos, las directivas de acceso y el historial de auditoría, pruebe con Key Vault.
Ejemplos de uso de secretos de aplicación para conectarse a una base de datos:
- Tutorial: Implementación de una aplicación de ASP.NET Core y Azure SQL Database en Azure App Service
- Tutorial: Implementación de una aplicación ASP.NET en Azure con Azure SQL Database
- Tutorial: Implementación de una aplicación PHP, MySQL y Redis en Azure App Service
- Implementación de una aplicación web de Node.js y MongoDB en Azure
- Implementación de una aplicación web Python (Django o Flask) con PostgreSQL en Azure
- Tutorial: Compilación de una aplicación web de Tomcat con Azure App Service en Linux y MySQL
- Tutorial: Compilación de una aplicación web de Java Spring Boot con Azure App Service en Linux y Azure Cosmos DB
Pasos siguientes
Obtenga información sobre cómo:
- Almacene de forma segura secretos en Azure Key Vault.
- Acceda a los recursos mediante una identidad administrada.
- Almacene secretos mediante la configuración de la aplicación de App Service.
- Conectarse a Microsoft Graph como usuario.
- Conectarse a una base de datos SQL como usuario.
- Conectarse a otra aplicación de App Service como usuario.
- Conectarse a otra aplicación de App Service y a continuación, un servicio de bajada como usuario.