Compartir vía


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.

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:

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.

Diagrama de arquitectura para el escenario del tutorial.

Algunos escenarios comunes son los siguientes:

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:

Diagrama que muestra un servicio de aplicación que utiliza un secreto almacenado en Key Vault y administrado con identidad administrada para conectarse a los servicios de Azure AI.

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:

Pasos siguientes

Obtenga información sobre cómo: