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

Der Azure SignalR-Dienst unterstützt die Microsoft Entra-ID zum Autorisieren von Anforderungen an seine Ressourcen. Mit Microsoft Entra ID können Sie rollenbasierte Zugriffssteuerung (RBAC) verwenden, um Einem Sicherheitsprinzipal Berechtigungen zu erteilen. Ein Sicherheitsprinzipal ist eine Benutzer-/Ressourcengruppe, eine Anwendung oder ein Dienstprinzipal, z. B. vom System zugewiesene Identitäten und vom Benutzer zugewiesene Identitäten.

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

Die Autorisierung von Anforderungen für den Azure SignalR-Dienst mithilfe der Microsoft Entra-ID bietet im Vergleich zur Zugriffstastenautorisierung höhere Sicherheit und Benutzerfreundlichkeit. Es wird dringend empfohlen, microsoft Entra-ID für die Autorisierung zu verwenden, da dadurch der Zugriff mit den erforderlichen Mindestberechtigungen sichergestellt wird.

Wichtig

Das Deaktivieren der lokalen Authentifizierung kann die folgenden Folgen haben:

  • Der aktuelle Satz von Zugriffstasten wird endgültig gelöscht.
  • Token, die mit dem aktuellen Satz von Zugriffstasten signiert sind, sind nicht verfügbar.

Übersicht über die Microsoft Entra-ID

Wenn ein Sicherheitsprinzipal versucht, auf eine Azure SignalR Service-Ressource zuzugreifen, muss die Anforderung autorisiert sein. Die Verwendung der Microsoft Entra-ID zum Zugriff auf eine Ressource erfordert zwei Schritte:

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

Clientseitige Authentifizierung mit Microsoft Entra-ID

Wenn Sie eine Zugriffstaste verwenden, wird der Schlüssel zwischen Ihrem App-Server (oder Ihrer Funktions-App) und der Azure SignalR Service-Ressource gemeinsam genutzt. Der Azure SignalR-Dienst authentifiziert die Clientverbindungsanforderung mithilfe des freigegebenen Schlüssels.

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

  1. Der Sicherheitsprinzipal erfordert 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. Es wird empfohlen, ein neues zu erhalten und die alte einmal pro Stunde auszudrehen.

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

Zuweisen von Azure-Rollen für Zugriffsrechte

Die Microsoft Entra-ID autorisiert Zugriffsrechte für gesicherte Ressourcen über Azure RBAC. Der Azure SignalR-Dienst definiert eine Reihe integrierter Azure-Rollen, die allgemeine Berechtigungen für den Zugriff auf Azure SignalR Service-Ressourcen umfassen. Sie können auch benutzerdefinierte Rollen für den Zugriff auf Azure SignalR Service-Ressourcen definieren.

Ressourcenumfang

Möglicherweise müssen Sie den Umfang des Zugriffs bestimmen, über den der Sicherheitsprinzipal verfügen soll, bevor Sie eine Azure RBAC-Rolle einem Sicherheitsprinzipal zuweisen. Es wird empfohlen, nur den schmalsten mö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 schmalsten Bereich.

`Scope` Beschreibung
Einzelne Ressource Gilt nur für die Zielressource.
Resource group Gilt für alle Ressourcen in einer Ressourcengruppe.
Subscription 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

Rolle Beschreibung Anwendungsfall
SignalR-App-Server Zugriff auf die WebSocket-Verbindungserstellungs-API und Authentifizierungs-APIs. Wird am häufigsten für einen App-Server verwendet.
SignalR Service-Besitzer Vollzugriff auf alle Datenebenen-APIs, einschließlich REST-APIs, der WebSocket-Verbindungserstellungs-API und Authentifizierungs-APIs. Wird für den serverlosen Modus für die Autorisierung mit Microsoft Entra ID verwendet, da es 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, aber keine Verbindungen oder Anrufauthentifizierungs-APIs ausführt.
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 des Azure SignalR-Diensts aufruft.

Nächste Schritte