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:
- Microsoft Entra authentifiziert den Sicherheitsprinzipal und gibt dann ein OAuth 2.0-Token zurück.
- 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:
- Der Sicherheitsprinzipal benötigt ein OAuth 2.0-Token von Microsoft Entra ID, um sich selbst zu authentifizieren.
- Der Sicherheitsprinzipal ruft die SignalR-Authentifizierungs-API auf, um einen temporären Zugriffsschlüssel abzurufen.
- Der Sicherheitsprinzipal signiert ein Clienttoken mit dem temporären Zugangsschlüssel für Clientverbindungen während der Aushandlung.
- 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
Informationen zum Erstellen einer Azure-Anwendung und zur Verwendung der Microsoft Entra-Autorisierung finden Sie unter Autorisieren von Anforderungen an Azure SignalR Service-Ressourcen mit Microsoft Entra-Anwendungen.
Informationen zum Konfigurieren einer verwalteten Identität und zur Verwendung der Microsoft Entra-Autorisierung finden Sie unter Autorisieren von Anforderungen an Azure SignalR Service-Ressourcen mit verwalteten Microsoft Entra-Identitäten.
Weitere Informationen zu Rollen und Rollenzuweisungen finden Sie im Artikel Was ist die rollenbasierte Zugriffssteuerung in Azure (Azure Role-Based Access Control, Azure RBAC)?.
Informationen zum Erstellen benutzerdefinierter Rollen finden Sie unter Schritte zum Erstellen einer benutzerdefinierten Rolle.
Wie Sie nur die Microsoft Entra-Authentifizierung verwenden können, erfahren Sie unter Deaktivieren der lokalen Authentifizierung.