Utiliser Microsoft Entra pour l’authentification du cache
Azure Cache pour Redis offre deux méthodes pour vous authentifier auprès de votre instance de cache : clés d’accès et Microsoft Entra.
Bien que l’authentification par clé d’accès soit simple, elle présente un ensemble de défis liés à la sécurité et à la gestion des mots de passe. À titre de comparaison, dans cet article, vous allez apprendre à utiliser un jeton Microsoft Entra pour l’authentification sur le cache.
Azure Cache pour Redis propose un mécanisme d’authentification sans mot de passe en intégrant Microsoft Entra. Cette intégration inclut également la fonctionnalité de contrôle d’accès en fonction du rôle fournie par le biais de listes de contrôle d’accès (ACL) prises en charge dans Redis open source.
Pour utiliser l’intégration de la liste de contrôle d’accès, votre application cliente doit prendre l’identité d’une entité Microsoft Entra, comme le principal de service ou l’identité managée, et se connecter à votre cache. Dans cet article, vous allez apprendre à utiliser votre principal de service ou votre identité managée pour vous connecter à votre cache. Vous allez également apprendre à accorder à votre connexion des autorisations prédéfinies en fonction de l’artefact Microsoft Entra utilisé pour la connexion.
Étendue de la disponibilité
Niveau | De base, Standard, Premium | Enterprise, Enterprise Flash |
---|---|---|
Disponibilité | Oui | Non |
Conditions préalables et limitations
- L’authentification basée sur Microsoft Entra est prise en charge pour les connexions SSL et TLS 1.2 ou versions ultérieures.
- L’authentification basée sur Microsoft Entra n’est pas prise en charge sur les instances Azure Cache pour Redis qui dépendent d’Azure Cloud Services.
- L’authentification basée sur Microsoft Entra n’est pas prise en charge dans les niveaux Enterprise d’Azure Cache pour Redis Enterprise.
- Certaines commandes Redis sont bloquées. Pour obtenir la liste complète des commandes bloquées, consultez Commandes Redis non prises en charge dans Azure Cache pour Redis.
Important
Une fois qu’une connexion est établie à l’aide d’un jeton Microsoft Entra, les applications clientes doivent régulièrement actualiser le jeton Microsoft Entra avant son expiration. Ensuite, les applications doivent envoyer une commande AUTH
au serveur Redis pour éviter de perturber les connexions. Pour plus d’informations, consultez Configurer votre client Redis pour utiliser Microsoft Entra.
Activer l’authentification Microsoft Entra sur votre cache
Dans le portail Azure, sélectionnez l’instance Azure Cache pour Redis dans laquelle vous souhaitez configurer l’authentification basée sur les jetons Microsoft Entra.
Dans le menu Ressource, sélectionnez Authentification.
Dans le volet actif, sélectionnez l’onglet Authentification Microsoft Entra.
Sélectionnez Activer l’authentification Microsoft Entra, puis entrez le nom d’un utilisateur valide. L’utilisateur que vous spécifiez est automatiquement associé à la stratégie d’accès Propriétaire des données par défaut lorsque vous sélectionnez Enregistrer. Vous pouvez également entrer une identité managée ou un principal de service pour vous connecter à votre instance de cache.
Une boîte de dialogue contextuelle vous demande si vous souhaitez mettre à jour votre configuration et vous informe qu’elle prend plusieurs minutes. Sélectionnez Oui.
Important
Une fois l’opération d’activation terminée, les nœuds de votre instance de cache redémarrent pour charger la nouvelle configuration. Nous vous recommandons d’effectuer cette opération pendant votre fenêtre de maintenance ou en dehors de vos heures de pointe. L’opération peut prendre jusqu’à 30 minutes.
Pour plus d’informations sur l’utilisation de Microsoft Entra avec Azure CLI, consultez les pages de référence pour l’identité.
Désactiver l’authentification par clé d’accès dans votre cache
L’utilisation de Microsoft Entra est la méthode de connexion sécurisée pour votre cache. Nous vous recommandons d’utiliser Microsoft Entra et de désactiver les clés d’accès.
Lorsque vous désactivez l’authentification par clé d’accès pour un cache, toutes les connexions client existantes sont interrompues, qu’elles utilisent des clés d’accès ou l’authentification Microsoft Entra. Suivez les meilleures pratiques recommandées pour le client Redis afin d’implémenter des mécanismes de nouvelle tentative appropriés pour reconnecter les connexions basées sur Microsoft Entra, le cas échéant.
Avant de désactiver les clés d’accès :
Vérifiez que l’authentification Microsoft Entra est activée et que vous avez au moins un utilisateur Redis configuré.
Vérifiez que toutes les applications se connectant à votre instance de cache basculent vers l’utilisation de l’authentification Microsoft Entra.
Vérifiez que les métriques Clients connectés et Clients connectés avec un jeton Microsoft Entra ont les mêmes valeurs. Si les valeurs de ces deux métriques ne sont pas identiques, cela signifie qu’il existe toujours des connexions qui ont été créées à l’aide de clés d’accès et pas du jeton Entra.
Envisagez de désactiver l’accès pendant la fenêtre de maintenance planifiée de votre instance de cache.
La désactivation des clés d’accès est disponible uniquement pour les caches de niveau De base, Standard et Premium.
Pour les caches géorépliqués, vous devez :
- Dissocier les caches.
- Désactiver les clés d’accès.
- Réassocier les caches.
Si vous disposez d’un cache où des clés d’accès sont utilisées et que vous souhaitez désactiver les clés d’accès, suivez cette procédure :
Dans le Portail Azure, sélectionnez l’instance Azure Cache pour Redis dans laquelle vous souhaitez désactiver les clés d’accès.
Dans le menu Ressource, sélectionnez Authentification.
Dans le volet de travail, sélectionnez Clés d’accès.
Sélectionnez Désactiver l’authentification par clés d’accès. Ensuite, cliquez sur Enregistrer.
Confirmez que vous souhaitez mettre à jour votre configuration en sélectionnant Oui.
Important
Lorsque le paramètre Désactiver l’authentification par clé d’accès est modifié pour un cache, toutes les connexions client existantes utilisant des clés d’accès ou Microsoft Entra, sont interrompues. Suivez les meilleures pratiques pour implémenter des mécanismes de nouvelle tentative appropriés afin de reconnecter les connexions basées sur Microsoft Entra. Pour plus d’informations, consultez Résilience des connexions.
Utiliser la configuration d’accès aux données avec votre cache
Si vous souhaitez utiliser une stratégie d’accès personnalisée au lieu de la stratégie d’accès Propriétaire des données Redis, accédez à Configuration de l’accès aux données dans le menu Ressource. Pour plus d’informations, consultez Configurer une stratégie d’accès aux données personnalisée pour votre application.
Dans le Portail Azure, sélectionnez l’instance Azure Cache pour Redis où vous souhaitez ajouter la configuration de l’accès aux données.
Dans le menu Ressource, sélectionnez Configuration de l’accès aux données.
Sélectionnez Ajouter, puis Nouvel utilisateur Redis.
Sous l’onglet Stratégies d’accès, sélectionnez l’une des stratégies disponibles dans le tableau : Propriétaire des données, Contributeur aux données ou Lecteur de données. Ensuite, sélectionnez Suivant : Utilisateurs Redis.
Choisissez l’option Utilisateur ou principal de service ou Identité managée pour déterminer la méthode d’attribution de l’accès à votre instance Azure Cache pour Redis. Si vous sélectionnez Utilisateur ou principal de service pour pouvoir ajouter un utilisateur, vous devez d’abord activer l’authentification Microsoft Entra.
Ensuite, choisissez Sélectionner des membres, puis Sélectionner. Ensuite, sélectionnez Suivant : Vérifier + créer.
Une boîte de dialogue contextuelle vous informe que la mise à niveau est permanente et peut entraîner une courte perte de connexion. Sélectionnez Oui.
Important
Une fois l’opération d’activation terminée, les nœuds de votre instance de cache redémarrent pour charger la nouvelle configuration. Nous vous recommandons d’effectuer cette opération pendant votre fenêtre de maintenance ou en dehors de vos heures de pointe. L’opération peut prendre jusqu’à 30 minutes.
Configurer votre client Redis pour utiliser Microsoft Entra
Étant donné que la plupart des clients Azure Cache pour Redis supposent qu’un mot de passe et une clé d’accès sont utilisés pour l’authentification, vous devrez probablement mettre à jour votre workflow client pour autoriser l’authentification avec Microsoft Entra. Dans cette section, vous allez apprendre à configurer vos applications clientes pour qu’elles se connectent à Azure Cache pour Redis à l’aide d’un jeton Microsoft Entra.
Workflow client Microsoft Entra
Configurez votre application cliente afin qu’elle acquière un jeton Microsoft Entra pour l’étendue,
https://redis.azure.com/.default
ouacca5fbb-b7e4-4009-81f1-37e38fd66d78/.default
, en utilisant la bibliothèque d’authentification Microsoft (MSAL).Mettez à jour votre logique de connexion Redis pour utiliser les éléments
User
etPassword
suivants :User
= ID d’objet de votre identité managée ou de votre principal de servicePassword
= Jeton Microsoft Entra que vous avez acquis à l’aide de MSAL
Assurez-vous que votre client exécute automatiquement une commande AUTH Redis avant l’expiration de votre jeton Microsoft Entra à l’aide de :
User
= ID d’objet de votre identité managée ou de votre principal de servicePassword
= Jeton Microsoft Entra actualisé périodiquement
Prise en charge de la bibliothèque de client
La bibliothèque Microsoft.Azure.StackExchangeRedis
est une extension de StackExchange.Redis
qui vous permet d’utiliser Microsoft Entra pour authentifier les connexions d’une application cliente Redis à un Azure Cache pour Redis. L’extension gère le jeton d’authentification, y compris l’actualisation proactive des jetons avant leur expiration pour maintenir des connexions Redis persistantes sur plusieurs jours.
Cet exemple de code montre comment utiliser le package NuGet Microsoft.Azure.StackExchangeRedis
pour se connecter à votre instance Azure Cache pour Redis à l’aide de Microsoft Entra.
Le tableau suivant contient des liens vers des exemples de code. Ils montrent comment se connecter à votre instance Azure Cache pour Redis à l’aide d’un jeton Microsoft Entra. De nombreuses bibliothèques clientes sont incluses dans plusieurs langages.
Bibliothèque cliente | Langage | Lien vers l’exemple de code |
---|---|---|
StackExchange.Redis | .NET | Exemple de code StackExchange.Redis |
go-redis | Go | Exemple de code go-redis |
redis-py | Python | Exemple de code redis-py |
Jedis | Java | Exemple de code Jedis |
Lettuce | Java | Exemple de code lettuce |
Redisson | Java | Exemple de code Redisson |
ioredis | Node.js | Exemple de code ioredis |
nœud-redis | Node.js | exemple de code nœud-redis |
Meilleures pratiques pour l’authentification Microsoft Entra
- Configurez des liaisons privées ou des règles de pare-feu pour protéger votre cache contre une attaque par déni de service.
- Assurez-vous que votre application cliente envoie un nouveau jeton Microsoft Entra au moins trois minutes avant l’expiration du jeton pour éviter toute interruption de la connexion.
- Quand vous appelez régulièrement la commande
AUTH
du serveur Redis, envisagez d’ajouter un retard aléatoire afin que les commandesAUTH
soient décalées. De cette façon, votre serveur Redis ne reçoit pas trop de commandesAUTH
en même temps.