Uso de Microsoft Entra para la autenticación de la memoria caché
Azure Cache for Redis ofrece dos métodos para autenticar en la instancia de caché: claves de acceso y Microsoft Entra.
Aunque la autenticación con una clave de acceso es sencilla, incluye un conjunto de desafíos en torno a la seguridad y la administración de contraseñas. Por el contrario, en este artículo aprenderá a usar un token de Microsoft Entra para la autenticación de la memoria caché.
Azure Cache for Redis ofrece un mecanismo de autenticación sin contraseña mediante la integración con Microsoft Entra. Esta integración también incluye la funcionalidad de control de acceso basado en roles proporcionada a través de listas de control de acceso (ACL) admitidas en Redis de código abierto.
Para usar la integración de ACL, la aplicación cliente debe asumir la identidad de una entidad de Microsoft Entra, como una entidad de servicio o una identidad administrada, y conectarse a la memoria caché. En este artículo, aprenderá a usar la entidad de servicio o la identidad administrada para conectarse a la memoria caché. También aprenderá a conceder los permisos predefinidos de conexión en función del artefacto de Microsoft Entra que se usa para la conexión.
Ámbito de disponibilidad
Nivel | Básico, Estándar, Premium | Enterprise o Enterprise Flash |
---|---|---|
Disponibilidad | Sí | No |
Requisitos previos y limitaciones
- La autenticación de Microsoft Entra se admite para conexiones SSL y TLS 1.2 o posteriores.
- La autenticación de Microsoft Entra no se admite en los niveles Enterprise de Azure Cache for Redis Enterprise.
- Algunos comandos de Redis están bloqueados. Para obtener una lista completa de los comandos bloqueados, consulte Comandos de Redis no admitidos en Azure Cache for Redis.
Importante
Una vez establecida una conexión mediante un token de Microsoft Entra, las aplicaciones cliente deben actualizar periódicamente el token de Microsoft Entra antes de la expiración. A continuación, las aplicaciones deben enviar un comando AUTH
al servidor de Redis para evitar interrumpir las conexiones. Para más información, consulte Configuración del cliente de Redis para usar Microsoft Entra.
Habilitación de la autenticación de Microsoft Entra en la memoria caché
En Azure Portal, seleccione la instancia de Azure Cache for Redis en la que quiere configurar la autenticación basada en tokens de Microsoft Entra.
En el menú Recurso, seleccione Autenticación.
En el panel de trabajo, seleccione la pestaña Autenticación de Microsoft Entra.
Seleccione Habilitar autenticación de Microsoft Entra y escriba el nombre de un usuario válido. Al usuario que escriba se le asigna automáticamente una directiva de acceso del propietario de datos de forma predeterminada al seleccionar Guardar. También puede escribir una identidad administrada o una entidad de servicio para conectarse a la instancia de caché.
Un cuadro de diálogo emergente pregunta si desea actualizar la configuración y le informa de que tarda varios minutos. Seleccione Sí.
Importante
Una vez finalizada la operación de habilitación, los nodos de la instancia de caché se reinician para cargar la nueva configuración. Se recomienda realizar esta operación durante la ventana de mantenimiento o fuera de las horas punta del horario comercial. Esta operación puede tardar hasta 30 minutos.
Para obtener información sobre cómo usar Microsoft Entra con la CLI de Azure, consulte las páginas de referencia para la identidad.
Deshabilitar la autenticación mediante claves de acceso en la memoria caché
Usar Microsoft Entra es la forma segura de conectarse a la memoria caché. Se recomienda usar Microsoft Entra y deshabilitar las claves de acceso.
Al deshabilitar la autenticación de clave de acceso para una memoria caché, finalizan todas las conexiones de cliente existentes, tanto si usan claves de acceso como la autenticación de Microsoft Entra. Siga los procedimientos recomendados del cliente de Redis para implementar mecanismos de reintento adecuados para volver a conectar conexiones basadas en Microsoft Entra, si existen.
Antes de deshabilitar las claves de acceso
- Asegúrese de que la autenticación de Microsoft Entra está habilitada y que tiene al menos un usuario de Redis configurado.
- Asegúrese de que todas las aplicaciones que se conectan al conmutador de instancia de caché usan la autenticación de Microsoft Entra.
- Asegúrese de que las métricas Clientes conectados y Clientes conectados mediante el token de Microsoft Entra tengan los mismos valores. Si los valores de estas dos métricas no son iguales, significa que todavía hay algunas conexiones que se crearon utilizando claves de acceso y no Microsoft Entra Token.
- Considere la posibilidad de deshabilitar el acceso durante la ventana de mantenimiento programada para la instancia de caché.
- Deshabilitar las claves de acceso solo está disponible para las memorias caché de nivel Básico, Estándar y Premium.
Para las cachés con replicación geográfica, debe:
- Desvincular las memorias caché.
- Deshabilitar las claves de acceso.
- Volver a vincular las memorias caché.
Si tiene una caché en la que utilizó claves de acceso y desea deshabilitarlas, siga este procedimiento:
En Azure Portal, seleccione la instancia de Azure Cache for Redis en la que quiere deshabilitar las claves de acceso.
En el menú Recurso, seleccione Autenticación.
En el panel de trabajo, seleccione Claves de acceso.
Seleccione Deshabilitar la autenticación mediante claves de acceso. Después, seleccione Guardar.
Confirme que desea actualizar la configuración seleccionando Sí.
Importante
Al cambiar el valor de Deshabilitar la autenticación mediante claves de acceso para una memoria caché, finalizan todas las conexiones de cliente existentes que usan claves de acceso o Microsoft Entra. Siga los procedimientos recomendados para implementar mecanismos de reintento adecuados para volver a conectar conexiones basadas en Microsoft Entra. Para más información, consulte Resistencia de la conexión.
Uso de la configuración de acceso a datos con la memoria caché
Si quiere usar una directiva de acceso personalizada en lugar del propietario de datos de Redis, vaya a la configuración de acceso a datos en el menú Recurso. Para obtener más información, consulte Configuración de una directiva de acceso a datos personalizada para la aplicación.
En Azure Portal, seleccione la instancia de Azure Cache for Redis en la que quiere agregar la con de acceso a datos.
En el menú Recurso, seleccione Configuración de acceso a datos.
Seleccione Agregar y, a continuación, seleccione Nuevo usuario de Redis.
En la pestaña Directivas de acceso, seleccione una de las directivas disponibles en la tabla: Propietario de datos, Colaborador de datos o Lector de datos. A continuación, seleccione Siguiente: Usuarios de Redis.
Elija Usuario o entidad de servicio o Identidad administrada para determinar cómo asignar el acceso a la instancia de Azure Cache for Redis. Si selecciona Usuario o entidad de servicio y quiere agregar un usuario, primero debe habilitar la autenticación de Microsoft Entra.
A continuación, elija Seleccionar miembros y elija Seleccionar. Luego seleccione Siguiente: Revisar y asignar.
Un cuadro de diálogo emergente le notifica que la actualización es permanente y puede provocar una breve interrupción de la conexión. Seleccione Sí.
Importante
Una vez finalizada la operación de habilitación, los nodos de la instancia de caché se reinician para cargar la nueva configuración. Se recomienda realizar esta operación durante la ventana de mantenimiento o fuera de las horas punta del horario comercial. Esta operación puede tardar hasta 30 minutos.
Configuración del cliente de Redis para usar Microsoft Entra
Dado que la mayoría de los clientes de Azure Cache for Redis asumen que se usan una clave de acceso y una contraseña para la autenticación, es probable que tenga que actualizar el flujo de trabajo del cliente para admitir la autenticación mediante Microsoft Entra. En esta sección, aprenderá a configurar las aplicaciones cliente para conectarse a Azure Cache for Redis mediante un token de Microsoft Entra.
Flujo de trabajo de cliente de Microsoft Entra
Configure la aplicación cliente para adquirir un token de Microsoft Entra para el ámbito
https://redis.azure.com/.default
o mediante laacca5fbb-b7e4-4009-81f1-37e38fd66d78/.default
Biblioteca de autenticación de Microsoft (MSAL).Actualice la lógica de conexión de Redis para usar los siguientes
User
yPassword
:User
= Id. de objeto de la identidad administrada o de la entidad de servicioPassword
= Token de Microsoft Entra que adquirió mediante la MSAL
Asegúrese de que el cliente ejecuta automáticamente un comando AUTH de Redis antes de que expire el token de Microsoft Entra mediante:
User
= Id. de objeto de la identidad administrada o de la entidad de servicioPassword
= Token de Microsoft Entra actualizado periódicamente
Soporte de biblioteca cliente
La biblioteca Microsoft.Azure.StackExchangeRedis
es una extensión de StackExchange.Redis
que permite usar Microsoft Entra para autenticar conexiones desde una aplicación cliente de Redis a una instancia de Azure Cache for Redis. La extensión administra el token de autenticación, incluida la actualización proactiva de los tokens antes de que expiren para mantener conexiones de Redis persistentes durante varios días.
En este ejemplo de código se muestra cómo usar el paquete NuGet Microsoft.Azure.StackExchangeRedis
para conectarse a la instancia de Azure Cache for Redis mediante Microsoft Entra.
En la siguiente tabla se incluyen vínculos a ejemplos de código. Muestran cómo conectarse a su instancia de Azure Cache for Redis mediante un token de Microsoft Entra. Se incluyen varias bibliotecas cliente en varios idiomas.
Biblioteca cliente | Lenguaje | Enlace a código de ejemplo |
---|---|---|
StackExchange.Redis | .NET | Ejemplo de código de StackExchange.Redis |
go-redis | Go | Ejemplo de código de go-redis |
redis-py | Python | Ejemplo de código de redis-py |
Jedis | Java | Ejemplo de código Jedis |
Lettuce | Java | Ejemplo de código de Lettuce |
Redisson | Java | Ejemplo de código Redisson |
ioredis | Node.js | Ejemplo de código ioredis |
node-redis | Node.js | Ejemplo de código de node-redis |
Procedimientos recomendados para la autenticación con Microsoft Entra
- Configure vínculos privados o reglas de firewall para proteger la memoria caché frente a un ataque por denegación de servicio.
- Asegúrese de que la aplicación cliente envía un nuevo token de Microsoft Entra al menos tres minutos antes de que expire el token para evitar la interrupción de la conexión.
- Al llamar al comando
AUTH
del servidor de Redis periódicamente, considere agregar un retraso aleatorio para que los comandosAUTH
se escalonen. De este modo, el servidor de Redis no recibe demasiados comandosAUTH
al mismo tiempo.