Verwenden von Microsoft Entra für die Cacheauthentifizierung mit Azure Managed Redis (Vorschau)
Azure Managed Redis (Vorschau) bietet zwei Methoden zur Authentifizierung bei Ihrer Cache-Instanz: Zugangsschlüssel und Microsoft Entra.
Obwohl die Authentifizierung mit Zugriffsschlüsseln einfach ist, birgt sie eine Reihe von Herausforderungen in Bezug auf die Sicherheit und Kennwortverwaltung. In diesem Artikel erfahren Sie, wie Sie ein Microsoft Entra-Token für die Cacheauthentifizierung verwenden.
Azure Managed Redis bietet einen kennwortlosen Authentifizierungsmechanismus durch Integration in Microsoft Entra. Die Entra-ID, die für die Verbindung mit Azure Managed Redis konfiguriert ist, erhält die gleichen Berechtigungen zugewiesen wie bei der Verwendung von Zugriffsschlüsseln.
In diesem Artikel erfahren Sie, wie Sie Ihren Dienstprinzipal oder die verwaltete Identität verwenden, um eine Verbindung mit Ihrer Redis-Instanz herzustellen.
Voraussetzungen und Einschränkungen
- Die Microsoft Entra-Authentifizierung wird nur für SSL-Verbindungen unterstützt.
- Einige Redis-Befehle sind gesperrt. Eine vollständige Liste der gesperrten Befehle finden Sie unter Redis-Befehle, die in Azure Managed Redis nicht unterstützt werden.
Wichtig
Nachdem eine Verbindung mithilfe eines Microsoft Entra-Tokens hergestellt wurde, müssen Clientanwendungen das Microsoft Entra-Token regelmäßig vor Ablauf aktualisieren. Anschließend müssen die Apps einen AUTH
-Befehl an den Redis-Server senden, um Verbindungsunterbrechungen zu vermeiden. Weitere Informationen finden Sie unter Konfigurieren des Redis-Clients für die Verwendung von Microsoft Entra.
Aktivieren der Microsoft Entra-Authentifizierung in Ihrem Cache
Wählen Sie im Azure-Portal die Azure Managed Redis-Instanz aus, für die Sie die tokenbasierte Microsoft Entra-Authentifizierung konfigurieren möchten.
Wählen Sie im Menü Ressource die Option Authentifizierung aus.
Wählen Sie im Arbeitsbereich die Registerkarte Microsoft Entra-Authentifizierung aus.
Wählen Sie Microsoft Entra-Authentifizierung aktivieren und dann die Schaltflächen „Benutzer oder Dienstprinzipal“ oder „Verwaltete Identität“ aus. Dem von Ihnen eingegebenen Benutzer werden automatisch dieselben Berechtigungen zugewiesen wie bei der Verwendung von Zugriffsschlüsseln, wenn Sie Auswählen. Sie können auch eine verwaltete Identität oder einen Dienstprinzipal eingeben, um eine Verbindung mit Ihrer AMR-Instanz herzustellen.
Informationen zur Verwendung von Microsoft Entra mit der Azure CLI finden Sie auf den Referenzseiten zur Identität.
Deaktivieren der Authentifizierung per Zugriffsschlüssel im Cache
Die Verwendung von Microsoft Entra stellt eine sichere Möglichkeit für eine Verbindung mit Ihrem Cache dar. Es wird empfohlen, Microsoft Entra zu verwenden und Zugriffsschlüssel zu deaktivieren.
Wenn Sie die Authentifizierung mit Zugriffsschlüssel für eine Redis-Instanz deaktivieren, werden alle vorhandenen Clientverbindungen getrennt, unabhängig davon, ob sie Zugriffsschlüssel oder die Microsoft Entra-Authentifizierung verwenden. Befolgen Sie die empfohlenen bewährten Methoden des Redis-Clients, um bei Bedarf geeignete Wiederholungsmechanismen für die erneute Verbindung von Microsoft Entra-basierten Verbindungen zu implementieren (sofern vorhanden).
Bevor Sie Zugriffsschlüssel deaktivieren:
Die Microsoft Entra-Authentifizierung muss aktiviert sein.
Für geo-replizierte Caches müssen Sie:
- die Verknüpfung der Caches aufheben.
- Zugriffsschlüssel deaktivieren
- die Caches erneut verknüpfen.
Wenn Sie über einen Cache verfügen, in dem Sie Zugriffsschlüssel verwenden, und Sie Zugriffsschlüssel deaktivieren möchten, gehen Sie wie folgt vor:
Wählen Sie im Azure-Portal die Azure Managed Redis-Instanz aus, in der Sie Zugriffsschlüssel deaktivieren möchten.
Wählen Sie im Menü Ressource die Option Authentifizierung aus.
Wählen Sie im Arbeitsbereich Zugriffsschlüssel aus.
Konfigurieren Sie die Zugriffsschlüsselauthentifizierung für die Deaktivierung.
Bestätigen Sie, dass Sie Ihre Konfiguration aktualisieren möchten, indem Sie Ja auswählen.
Wichtig
Wenn die Einstellung Authentifizierung per Zugriffsschlüssel deaktivieren für einen Cache geändert wird, werden alle vorhandenen Clientverbindungen (mit Zugriffsschlüsseln oder Microsoft Entra) getrennt. Befolgen Sie die bewährten Methoden, um geeignete Wiederholungsmechanismen für die erneute Verbindung von Verbindungen auf Grundlage von Microsoft Entra zu implementieren. Weitere Informationen finden Sie unter Verbindungsresilienz.
Konfigurieren des Redis-Clients für die Verwendung von Microsoft Entra
Da die meisten Azure Managed-Clients davon ausgehen, dass ein Kennwort und ein Zugriffsschlüssel für die Authentifizierung verwendet werden, müssen Sie wahrscheinlich Ihren Clientworkflow aktualisieren, um die Authentifizierung mit Microsoft Entra zu unterstützen. In diesem Abschnitt erfahren Sie, wie Sie Ihre Clientanwendungen konfigurieren, um mithilfe eines Microsoft Entra-Tokens eine Verbindung mit Azure Managed Redis herzustellen.
Microsoft Entra-Clientworkflow
Konfigurieren Sie Ihre Clientanwendung, um ein Microsoft Entra-Token für den Bereich
https://redis.azure.com/.default
oderacca5fbb-b7e4-4009-81f1-37e38fd66d78/.default
mithilfe der Microsoft Authentication Library (MSAL) abzurufen.Aktualisieren Sie Ihre Redis-Verbindungslogik, um die folgenden
User
undPassword
verwenden zu können:User
= Objekt-ID Ihrer verwalteten Identität oder Ihres DienstprinzipalsPassword
= Microsoft Entra-Token, das Sie mithilfe von MSAL abgerufen haben
Stellen Sie sicher, dass Ihr Client einen Redis AUTH-Befehl automatisch ausführt, bevor Ihr Microsoft Entra-Token abläuft, indem Sie Folgendes verwenden:
User
= Objekt-ID Ihrer verwalteten Identität oder Ihres DienstprinzipalsPassword
= Microsoft Entra-Token wird regelmäßig aktualisiert
Unterstützung von Clientbibliotheken
Die Bibliothek Microsoft.Azure.StackExchangeRedis
ist eine Erweiterung von StackExchange.Redis
, mit der Sie Microsoft Entra verwenden können, um Verbindungen von einer Redis-Clientanwendung zu einer Azure Managed Redis-Instanz zu authentifizieren. Die Erweiterung verwaltet das Authentifizierungstoken, einschließlich proaktiver Aktualisierung von Token, bevor sie ablaufen, um persistente Redis-Verbindungen über mehrere Tage aufrechtzuerhalten.
In diesem Codebeispiel wird veranschaulicht, wie Sie das NuGet-Paket Microsoft.Azure.StackExchangeRedis
verwenden, um mithilfe von Microsoft Entra eine Verbindung mit Ihrer Azure Managed Redis-Instanz herzustellen.
Die folgende Tabelle enthält Links zu Codebeispielen. Sie zeigen, wie Sie mithilfe eines Microsoft Entra-Tokens eine Verbindung mit Ihrer Azure Managed Redis-Instanz herstellen. Verschiedene Clientbibliotheken sind in mehreren Sprachen enthalten.
Clientbibliothek | Sprache | Link zu Beispielcode |
---|---|---|
StackExchange.Redis | .NET | StackExchange.Redis-Codebeispiel |
redis-py | Python | redis-py-Codebeispiel |
Jedis | Java | Beispiel für Jedis-Code |
Lettuce | Java | Beispiel für Lettuce-Code |
Redisson | Java | Beispiel für Redisson-Code |
ioredis | Node.js | Beispiel für ioredis-Code |
node-redis | Node.js | node-redis-Codebeispiel |
Best Practices für Microsoft Entra-Authentifizierung
- Konfigurieren Sie private Links oder Firewallregeln, um Ihren Cache vor einem Denial-of-Service-Angriff zu schützen.
- Stellen Sie sicher, dass Ihre Clientanwendung mindestens drei Minuten vor Ablauf des Tokens ein neues Microsoft Entra-Token sendet, um Verbindungsunterbrechungen zu vermeiden.
- Wenn Sie den Redis-Serverbefehl „
AUTH
“ regelmäßig aufrufen, sollten Sie einen Jitter hinzufügen, damit dieAUTH
-Befehle gestaffelt sind. Auf diese Weise empfängt Ihr Redis-Server nicht zu vieleAUTH
-Befehle gleichzeitig.