Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Es posible que el servicio de aplicaciones tenga que conectarse a otros servicios de Azure, como una base de datos, un 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 en la actualidad porque los actores malintencionados rastrean periódicamente los repositorios públicos de GitHub en busca de secretos de conexión confirmados 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, la aplicación puede empezar con la 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 tu aplicación a través de la autenticación de Microsoft Entra, lo que elimina los secretos por completo en tu 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 descendente admite la autenticación de Microsoft Entra, como Microsoft Graph. * El recurso posterior no necesita conocer al usuario actual que ha iniciado sesión ni necesita una autorización granular del mismo. |
| 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 Azure descendente admite la autenticación de Microsoft Entra, como Microsoft Graph. * El recurso debe realizar una autorización granular del usuario actual que ha iniciado sesión. |
| Conexión mediante secretos | * El recurso descendente requiere credenciales 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 Azure de bajada aún no admite la autenticación 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 desde Microsoft Entra ID permite que App Service acceda 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 Microsoft Entra y la autenticación tiene lugar con tokens de corta duración.
En la imagen siguiente se muestra la siguiente instancia de App Service que se conecta a otros servicios de Azure:
- A: El usuario visita el sitio web de Azure App Service.
- B: Conéctate de forma segura desde App Service a otro servicio de Azure mediante una identidad administrada.
- C: conectarse de forma segura desde App Service a Microsoft Graph mediante una identidad administrada.
Diagrama que muestra la identidad administrada que accede a un recurso con o sin la identidad del usuario.
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: conexión a SQL Database desde .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 descendente 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 Authentication 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 descendente. 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 ha iniciado 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.
Diagrama de arquitectura para el escenario del tutorial.
Algunos escenarios comunes son los siguientes:
- Conectar 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
- Guiar al usuario que ha iniciado sesión a través de múltiples capas de servicios descendentes.
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 de Key Vault
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 descendente no admite la autenticación de Microsoft Entra o requiere una cadena de conexión o una clave, utilice 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 de Key Vault 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 secreto del 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 accedió 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, se accede 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 una administración de secretos más avanzada, como la rotación de secretos, las directivas de acceso y el historial de auditoría, pruebe usar 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 de ASP.NET en Azure con Azure SQL Database
- Tutorial: Implementación de una aplicación PHP, MySQL y Redis en Azure App Service
- Deploy a Node.js + MongoDB web app to Azure
- Implementación de una aplicación web de Python (Flask) con PostgreSQL en Azure
- Implementación de una aplicación web de Python (Django) con PostgreSQL en Azure
- Implementación de una aplicación web de Python (FastAPI) 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 Spring Boot Java con Azure App Service en Linux y Azure Cosmos DB
Contenido relacionado
- Almacene secretos de forma segura 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.
- Conectar 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 luego a un servicio descendente como usuario.