Freigeben über


Autorisieren des Zugriffs mit Microsoft Entra ID für Azure SignalR Service

Azure SignalR Service unterstützt Microsoft Entra ID zum Autorisieren von Anforderungen an seine Ressourcen. Microsoft Entra ID ermöglicht Ihnen die Verwendung der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC), um einem Sicherheitsprinzipal Berechtigungen zu erteilen. Ein Sicherheitsprinzipal ist eine benutzende Person/ eine Ressourcengruppe, eine Anwendung oder ein Dienstprinzipal, z. B. systemseitig zugewiesene Identitäten und benutzerseitig zugewiesene Identitäten.

Microsoft Entra ID authentifiziert den Sicherheitsprinzipal und gibt ein OAuth 2.0-Token zurück. Das Token wird dann verwendet, um eine Anforderung an die Azure SignalR Service-Ressource zu autorisieren.

Die Autorisierung von Anforderungen für Azure SignalR Service mit Microsoft Entra ID bietet über die Autorisierung mit einem Zugriffsschlüssel überlegene Sicherheit und Benutzerfreundlichkeit. Wir empfehlen Ihnen dringend, wann immer möglich Microsoft Entra ID für die Autorisierung zu verwenden, da dies den Zugriff mit den minimal erforderlichen Berechtigungen gewährleistet.

Wichtig

Das Deaktivieren der lokalen Authentifizierung kann die folgenden Konsequenzen haben:

  • Die aktuellen Zugriffsschlüssel werden endgültig gelöscht.
  • Tokens, die mit den aktuellen Zugriffsschlüsseln signiert sind, sind nicht mehr verfügbar.

Übersicht über Microsoft Entra ID

Wenn ein Sicherheitsprinzipal versucht, auf eine Azure SignalR Service-Ressource zuzugreifen, muss die Anforderung autorisiert werden. Die Verwendung von Microsoft Entra ID für den Zugriff auf eine Ressource erfordert zwei Schritte:

  1. Microsoft Entra authentifiziert den Sicherheitsprinzipal und gibt dann ein OAuth 2.0-Token zurück.
  2. Das Token wird als Teil einer Anforderung an Azure SignalR Service-Ressource zur Autorisierung der Anforderung übergeben.

Clientseitige Authentifizierung mit Microsoft Entra ID

Bei der Verwendung eines Zugriffsschlüssels wird der Schlüssel gemeinsam von Ihrem App-Server (oder der Funktions-App) und der Azure SignalR Service-Ressource verwendet. Azure SignalR Service authentifiziert die Clientverbindungsanforderung mit dem gemeinsam verwendeten Schlüssel.

Wenn Sie Microsoft Entra ID verwenden, gibt es keinen freigegebenen Schlüssel. Stattdessen verwendet Azure SignalR Service einen temporären Zugriffsschlüssel zum Signieren von Token, die in Clientverbindungen verwendet werden. Der Workflow enthält vier Schritte:

  1. Der Sicherheitsprinzipal benötigt ein OAuth 2.0-Token von Microsoft Entra ID, um sich selbst zu authentifizieren.
  2. Der Sicherheitsprinzipal ruft die SignalR-Authentifizierungs-API auf, um einen temporären Zugriffsschlüssel abzurufen.
  3. Der Sicherheitsprinzipal signiert ein Clienttoken mit dem temporären Zugangsschlüssel für Clientverbindungen während der Aushandlung.
  4. Der Client verwendet das Clienttoken, um eine Verbindung mit Azure SignalR Service-Ressourcen herzustellen.

Der temporäre Zugriffsschlüssel läuft in 90 Minuten ab. Wir empfehlen Ihnen, einen neuen Schlüssel abzurufen und den alten einmal pro Stunde zu rotieren.

Der Workflow ist in das Azure SignalR Service-SDK für App-Server integriert.

Zuweisen von Azure-Rollen für Zugriffsrechte

Microsoft Entra ID autorisiert Zugriffsrechte für gesicherte Ressourcen über Azure RBAC. Azure SignalR Service definiert eine Reihe von in Azure integrierten Rollen, die gemeinsame Sätze von Berechtigungen für den Zugriff auf Azure SignalR Service-Ressourcen umfassen. Sie können auch eigene Rollen für den Zugriff auf Azure SignalR Service-Ressourcen definieren.

Ressourcenbereich

Bevor Sie einem Sicherheitsprinzipal eine Azure RBAC-Rolle zuweisen, müssen Sie möglicherweise den Umfang des Zugriffs festlegen, den der Sicherheitsprinzipal haben soll. Wir empfehlen Ihnen, nur den kleinstmöglichen Bereich zu gewähren. Azure RBAC-Rollen, die in einem umfassenderen Bereich definiert sind, werden von den darunterliegenden Ressourcen geerbt.

Sie können den Zugriff auf Azure SignalR Service-Ressourcen auf den folgenden Ebenen einschränken, beginnend mit dem kleinstmöglichen Bereich.

`Scope` Beschreibung
Einzelne Ressource Gilt nur für die Zielressource.
Resource group Gilt für alle Ressourcen in einer Ressourcengruppe.
Abonnement Gilt für alle Ressourcen in einem Abonnement.
Verwaltungsgruppe Gilt für alle Ressourcen in den Abonnements, die in einer Verwaltungsgruppe enthalten sind.

Integrierte Azure-Rollen für Azure SignalR Service-Ressourcen

Role Beschreibung Anwendungsfall
SignalR-App-Server Zugriff auf die WebSocket-Verbindungserstellungs-API und Authentifizierungs-APIs. Am häufigsten verwendet für einen App-Server.
SignalR Service-Besitzer Vollzugriff auf alle Datenebenen-APIs, einschließlich REST-APIs, der WebSocket-Verbindungserstellungs-API und Authentifizierungs-APIs. Zu verwenden für den serverlosen Modus für die Autorisierung mit Microsoft Entra ID, da er sowohl REST-API-Berechtigungen als auch Authentifizierungs-API-Berechtigungen erfordert.
SignalR-REST-API-Besitzer Vollzugriff auf REST-APIs auf Datenebene. Wird häufig verwendet, um ein Tool zu schreiben, das Verbindungen und Gruppen verwaltet, jedoch nicht Verbindungen herstellt oder Authentifizierungs-APIs aufruft.
SignalR-REST-API-Leser Schreibgeschützter Zugriff auf REST-APIs auf Datenebene. Wird häufig verwendet, um ein Überwachungstool zu schreiben, das nur schreibgeschützte REST-APIs auf der Azure SignalR Service-Datenebene aufruft.

Nächste Schritte