Verwenden von Microsoft Entra ID (Vorschau) für die Cacheauthentifizierung

Azure Cache for Redis bietet zwei Methoden für die Authentifizierung bei Ihrer Cache-Instanz:

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 ID (Vorschau). 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 Ihre verwaltete Identität verwenden, um eine Verbindung mit Ihrem Cache herzustellen, und wie Sie Ihrer Verbindung vordefinierte Berechtigungen basierend auf dem Microsoft Entra-Artefakt, das für die Verbindung verwendet wird, erteilen.

Umfang der Verfügbarkeit

Tier Basic, Standard und Premium Enterprise, Enterprise Flash
Verfügbarkeit Ja (Vorschau) Nein

Voraussetzungen und Einschränkungen

  • Die Microsoft Entra ID-basierte Authentifizierung wird für SSL-Verbindungen und mindestens TLS 1.2 unterstützt.
  • Die Microsoft Entra ID-basierte Authentifizierung wird für Azure Cache for Redis-Instanzen, die von Cloud Services abhängen, nicht unterstützt.
  • Die Microsoft Entra ID-basierte 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

Sobald eine Verbindung mit dem Microsoft Entra-Token hergestellt wurde, müssen Clientanwendungen das Microsoft Entra-Token vor Ablauf regelmäßig aktualisieren und 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 ID.

Aktivieren der auf Microsoft Entra ID basierenden Authentifizierung in Ihrem Cache

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

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

  3. Wählen Sie (VORSCHAU) Microsoft Entra-Authentifizierung aktivieren im Arbeitsbereich 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 aktivierter Microsoft Entra-Authentifizierung.

  5. In einem Popupdialogfeld wird angezeigt, in dem Sie gefragt werden, ob Sie Ihre Konfiguration aktualisieren möchten, und Sie werden informiert, dass es mehrere Minuten dauert. Wählen Sie Ja aus.

    Wichtig

    Sobald der Aktivierungsvorgang abgeschlossen ist, werden die Knoten in Ihrer Cache-Instanz neu gestartet, um die neue Konfiguration zu laden. Es wird empfohlen, diesen Vorgang während der Wartung oder außerhalb Ihrer Spitzenarbeitszeiten durchzuführen. Dieser Vorgang kann bis zu 30 Minuten in Anspruch nehmen.

Informationen zur Verwendung der Microsoft Entra-ID mit Azure CLI finden Sie auf den Referenzseiten für Identität.

Verwenden der Datenzugriffskonfiguration mit Ihrem Cache

Wenn Sie eine benutzerdefinierte Zugriffsrichtlinie anstelle des Redis-Datenbesitzers verwenden möchten, wechseln Sie zur Datenzugriffskonfiguration im Ressourcenmenü. 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 (VORSCHAU) Datenzugriffskonfiguration aus.

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

  4. Wählen Sie auf der Registerkarte Zugriffsrichtlinie 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 auswählen und Auswählen aus. Wählen Sie dann Weiter: Überprüfen + zuweisen aus. Screenshot der Mitglieder, die als neue Redis-Benutzer hinzugefügt werden können.

  7. In einem Dialogfeld wird ein Popup angezeigt, in dem Sie darüber informiert werden, dass das Upgrade endgültig ist und zu einer kurzen Verbindungsunterbrechung führen kann. Wählen Sie Ja aus.

    Wichtig

    Sobald der Aktivierungsvorgang abgeschlossen ist, werden die Knoten in Ihrer Cache-Instanz neu gestartet, um die neue Konfiguration zu laden. Es wird empfohlen, diesen Vorgang während der Wartung oder außerhalb Ihrer Spitzenarbeitszeiten durchzuführen. Dieser Vorgang kann bis zu 30 Minuten in Anspruch nehmen.

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

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 ID 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 ID 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 ID eine Verbindung mit Ihrer Azure Cache for Redis-Instanz herzustellen.

Die folgende Tabelle enthält Links zu Codebeispielen, die zeigen, wie Sie mithilfe eines Microsoft Entra-Tokens eine Verbindung mit Ihrer Azure Cache for Redis-Instanz herstellen. Eine Vielzahl von Clientbibliotheken ist 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 3 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 die AUTH-Befehle gestaffelt sind und Ihr Redis-Server nicht viele AUTH-Befehle gleichzeitig empfängt.