Freigeben über


Verwenden von Microsoft Entra für die Cacheauthentifizierung

Azure Cache for Redis 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 Cache for Redis bietet einen kennwortlosen Authentifizierungsmechanismus durch Integration in Microsoft Entra. Diese Integration umfasst auch Funktionen für die rollenbasierte Zugriffssteuerung, die über Zugriffssteuerungslisten, welche in Open-Source-Redis unterstützt werden, bereitgestellt werden.

Um die ACL-Integration zu verwenden, muss Ihre Clientanwendung die Identität einer Microsoft Entra-Entität wie einen Dienstprinzipal oder eine verwaltete Identität annehmen und eine Verbindung mit Ihrem Cache herstellen. In diesem Artikel erfahren Sie, wie Sie Ihren Dienstprinzipal oder die verwaltete Identität verwenden, um eine Verbindung mit Ihrem Cache herzustellen. Außerdem erfahren Sie, wie Sie Ihrer Verbindung vordefinierte Berechtigungen basierend auf dem Microsoft Entra-Artefakt, das für die Verbindung verwendet wird, erteilen.

Umfang der Verfügbarkeit

Tarif Basic, Standard und Premium Enterprise, Enterprise Flash
Verfügbarkeit Ja Nein

Voraussetzungen und Einschränkungen

  • Die Microsoft Entra-Authentifizierung wird für SSL-Verbindungen und mindestens TLS 1.2 unterstützt.
  • Die Microsoft Entra-Authentifizierung wird in den Enterprise-Tarifen von Azure Cache for Redis Enterprise nicht unterstützt.
  • Einige Redis-Befehle sind gesperrt. Eine vollständige Liste der gesperrten Befehle finden Sie unter Redis-Befehle, die in Azure Cache for 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

  1. Wählen Sie im Azure-Portal die Azure Cache for Redis-Instanz aus, für die Sie die tokenbasierte Authentifizierung von Microsoft Entra konfigurieren möchten.

  2. Wählen Sie im Menü Ressource die Option Authentifizierung aus.

  3. Wählen Sie im Arbeitsbereich die Registerkarte Microsoft Entra-Authentifizierung aus.

  4. Wählen Sie Microsoft Entra-Authentifizierung aktivieren aus, und geben Sie einen gültigen Benutzernamen ein. Dem eingegebenen Benutzer wird automatisch standardmäßig die Datenbesitzer-Zugriffsrichtlinie zugewiesen, wenn Sie Speichernauswählen. Sie können auch eine verwaltete Identität oder einen Dienstprinzipal eingeben, um eine Verbindung mit Ihrer Cache-Instanz herzustellen.

    Screenshot der im Ressourcenmenü ausgewählten Authentifizierung und des Kontrollkästchens „Microsoft Entra-Authentifizierung aktivieren“.

  5. Ein Popupdialogfeld wird angezeigt, in dem Sie gefragt werden, ob Sie Ihre Konfiguration aktualisieren möchten, und Sie werden darüber informiert, dass dies mehrere Minuten dauert. Wählen Sie Ja aus.

    Wichtig

    Nach Abschluss des Aktivierungsvorgangs, werden die Knoten in Ihrer Cache-Instanz neu gestartet, um die neue Konfiguration zu laden. Wir empfehlen, dass Sie diesen Vorgang während der Wartung oder außerhalb Ihrer Spitzenarbeitszeiten durchführen. Dieser Vorgang kann bis zu 30 Minuten in Anspruch nehmen.

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 per Zugriffsschlüssel für einen Cache deaktivieren, werden alle vorhandenen Clientverbindungen getrennt, unabhängig davon, ob dafür eine Zugriffsschlüssel oder die Microsoft Entra-Authentifizierung verwendet wird. 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

  • Stellen Sie sicher, dass die Microsoft Entra-Authentifizierung aktiviert und mindestens ein Redis-Benutzer konfiguriert worden ist.
  • Stellen Sie sicher, dass alle Anwendungen, die eine Verbindung mit Ihrer Cacheinstanz herstellen, die Microsoft Entra-Authentifizierung verwenden.
  • Stellen Sie sicher, dass die Metriken Verbundene Clients und Verbundene Clients mit Microsoft Entra-Token dieselben Werte aufweisen. Wenn die Werte für diese beiden Metriken nicht identisch sind, bedeutet dies, dass es noch einige Verbindungen gibt, die mit Zugriffsschlüsseln und nicht mit Microsoft Entra-Token erstellt wurden.
  • Ziehen Sie in Erwägung, den Zugriff während des geplanten Wartungsfensters für Ihre Cacheinstanz zu deaktivieren.
  • Das Deaktivieren von Zugriffsschlüsseln ist nur für Caches der Dienstebenen Basic, Standard und Premium verfügbar.

Für geo-replizierte Caches müssen Sie:

  1. die Verknüpfung der Caches aufheben.
  2. Zugriffsschlüssel deaktivieren
  3. die Caches erneut verknüpfen.

Wenn Sie über einen Cache verfügen, in dem Zugriffsschlüssel verwendeten, und Sie Zugriffsschlüssel deaktivieren möchten, gehen Sie wie folgt vor:

  1. Wählen Sie im Azure-Portal die Azure Cache for Redis-Instanz aus, in der Sie Zugriffsschlüssel deaktivieren möchten.

  2. Wählen Sie im Menü Ressource die Option Authentifizierung aus.

  3. Wählen Sie im Arbeitsbereich Zugriffsschlüssel aus.

  4. Wählen Sie Authentifizierung per Zugriffsschlüssel deaktivieren aus. Wählen Sie anschließend Speichern aus.

    Screenshot der Zugriffsschlüssel im Arbeitsbereich mit dem Kontrollkästchen „Authentifizierung per Zugriffsschlüssel deaktivieren“.

  5. 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.

Verwenden der Datenzugriffskonfiguration mit Ihrem Cache

Wenn Sie eine benutzerdefinierte Zugriffsrichtlinie anstelle des Redis-Datenbesitzers verwenden möchten, wechseln Sie zur Datenzugriffskonfiguration im Menü Ressource. Weitere Informationen finden Sie unter Konfigurieren einer benutzerdefinierten Datenzugriffsrichtlinie für Ihre Anwendung.

  1. Wählen Sie im Azure-Portal die Azure Cache for Redis-Instanz aus, in der Sie die Datenzugriffskonfiguration hinzufügen möchten.

  2. Wählen Sie im Menü Ressource die Option Datenzugriffskonfiguration aus.

  3. Wählen Sie Hinzufügen und dann Neuer Redis-Benutzer aus.

  4. Wählen Sie auf der Registerkarte Zugriffsrichtlinien eine der verfügbaren Richtlinien in der Tabelle aus: Datenbesitzer, Datenmitwirkender oder Datenleser. Wählen Sie dann Weiter: Redis-Benutzer aus.

    Screenshot der verfügbaren Zugriffsrichtlinien.

  5. Wählen Sie entweder Benutzer oder Dienstprinzipal oder Verwaltete Identität aus, um zu bestimmen, wie der Zugriff auf Ihre Azure Cache for Redis-Instanz zugewiesen werden soll. Wenn Sie Benutzer oder Dienstprinzipal auswählen und einen Benutzer hinzufügen möchten, müssen Sie zuerst Microsoft Entra-Authentifizierung aktivieren.

  6. Wählen Sie dann Mitglieder und anschließend Auswählen aus. Wählen Sie dann Weiter: Überprüfen und zuweisen aus.

    Screenshot der Mitglieder, die als neue Redis-Benutzer*innen hinzugefügt werden können.

  7. Ein Popupdialogfeld benachrichtigt Sie darüber, dass das Upgrade dauerhaft ist und zu einer kurzen Verbindungsunterbrechung führen kann. Wählen Sie Ja aus.

    Wichtig

    Nach Abschluss des Aktivierungsvorgangs, werden die Knoten in Ihrer Cache-Instanz neu gestartet, um die neue Konfiguration zu laden. Wir empfehlen, dass Sie diesen Vorgang während der Wartung oder außerhalb Ihrer Spitzenarbeitszeiten durchführen. Dieser Vorgang kann bis zu 30 Minuten in Anspruch nehmen.

Konfigurieren des Redis-Clients für die Verwendung von Microsoft Entra

Da die meisten Azure Cache for Redis-Clients davon ausgehen, dass ein Kennwort und ein Zugriffsschlüssel für die Authentifizierung verwendet werden, müssen Sie wahrscheinlich Ihren Clientworkflow aktualisieren, damit die Authentifizierung mit Microsoft Entra unterstützt wird. In diesem Abschnitt erfahren Sie, wie Sie Ihre Clientanwendungen konfigurieren, um mithilfe eines Microsoft Entra-Tokens eine Verbindung mit Azure Cache for Redis herzustellen.

Microsoft Entra-Clientworkflow

  1. Konfigurieren Sie Ihre Clientanwendung, um ein Microsoft Entra-Token für den Bereich https://redis.azure.com/.default oder acca5fbb-b7e4-4009-81f1-37e38fd66d78/.default mithilfe der Microsoft Authentication Library (MSAL) abzurufen.

  2. Aktualisieren Sie Ihre Redis-Verbindungslogik, um die folgenden User und Password verwenden zu können:

    • User = Objekt-ID Ihrer verwalteten Identität oder Ihres Dienstprinzipals
    • Password = Microsoft Entra-Token, das Sie mithilfe von MSAL abgerufen haben
  3. 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 Dienstprinzipals
    • Password = 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 zwischen einer Redis-Clientanwendung und Azure Cache for Redis 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 Microsoft.Azure.StackExchangeRedis-NuGet-Paket verwenden, um mithilfe von Microsoft Entra eine Verbindung mit Ihrer Azure Cache for 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 Cache for Redis-Instanz herstellen. Verschiedene Clientbibliotheken sind in mehreren Sprachen enthalten.

Clientbibliothek Sprache Link zu Beispielcode
StackExchange.Redis .NET StackExchange.Redis-Codebeispiel
go-redis Go go-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 eine zufällige Verzögerung hinzufügen, damit die AUTH-Befehle gestaffelt sind. Auf diese Weise empfängt Ihr Redis-Server nicht zu viele AUTH-Befehle gleichzeitig.