Azure Relay-Authentifizierung und -Autorisierung
Es gibt zwei Möglichkeiten, den Zugriff auf Azure Relay-Ressourcen zu authentifizieren und zu autorisieren: Microsoft Entra ID und SAS (Shared Access Signatures). In diesem Artikel erhalten Sie Informationen zur Verwendung dieser beiden Arten von Sicherheitsmechanismen.
Microsoft Entra ID
Die Microsoft Entra-Integration für Azure Relay-Ressourcen bietet rollenbasierte Zugriffssteuerung in Azure (Azure RBAC), mit der Sie den Zugriff eines Clients auf Ressourcen differenziert steuern können. Mit Azure RBAC können einem Sicherheitsprinzipal, bei dem es Sicherheitsprinzipal es sich um einen Benutzer, um eine Gruppe oder um einen Anwendungsdienstprinzipal handeln kann, Berechtigungen erteilt werden. Der Sicherheitsprinzipal wird von Microsoft Entra ID authentifiziert, und gibt ein OAuth 2.0-Token zurück. Das Token kann zum Autorisieren einer Anforderung für den Zugriff auf eine Azure Relay-Ressource verwendet werden.
Weitere Informationen zur Authentifizierung mit Microsoft Entra ID finden Sie in den folgenden Artikeln:
- Authentifizieren mit verwalteten Dienstidentitäten
- Authentifizieren aus einer Microsoft Entra-Anwendung
Wichtig
Das Autorisieren von Benutzern oder Anwendungen mithilfe eines von Microsoft Entra ID zurückgegebenen OAuth 2.0-Tokens bietet mehr Sicherheit und Benutzerfreundlichkeit als die Autorisierung per SAS (Shared Access Signature). Mit Microsoft Entra ID ist es nicht erforderlich, Token in Ihrem Code zu speichern und potenzielle Sicherheitsrisiken einzugehen. Es wird empfohlen, nach Möglichkeit Microsoft Entra ID für Ihre Azure Relay-Anwendungen zu verwenden.
Integrierte Rollen
Bei Azure Relay ist die Verwaltung der Namespaces und aller zugehörigen Ressourcen über das Azure-Portal und die Azure-Ressourcenverwaltungs-API bereits durch das Azure RBAC-Modell geschützt. Azure stellt die folgenden integrierten Azure-Rollen zum Autorisieren des Zugriffs auf einen Relay-Namespace bereit:
Rolle | Beschreibung |
---|---|
Azure Relay-Besitzer | Mit dieser Rolle können Sie Vollzugriff auf Azure Relay-Ressourcen gewähren. |
Azure Relay-Listener | Mit dieser Rolle können Sie Lausch- und Entitätslese-zugriff auf Azure Relay-Ressourcen gewähren. |
Azure Relay-Absender | Mit dieser Rolle können Sie Sende- und Entitätslese-zugriff auf Azure Relay-Ressourcen gewähren. |
Shared Access Signature (SAS)
Anwendungen können mithilfe der SAS-Authentifizierung (Shared Access Signature) bei Azure Relay authentifiziert werden. Die SAS-Authentifizierung ermöglicht Anwendungen die Authentifizierung beim Azure Relay-Dienst mithilfe eines Zugriffsschlüssels, der für den Namespace „Relay“ konfiguriert wird. Sie können diesen Schlüssel zum Generieren eines SAS-Tokens verwenden, das Clients für die Authentifizierung beim Relaydienst verwenden können.
Mit der SAS-Authentifizierung können Sie einem Benutzer Zugriff auf Azure Relay-Ressourcen mit spezifischen Rechten gewähren. Die SAS-Authentifizierung umfasst die Konfiguration eines kryptografischen Schlüssels mit den zugehörigen Rechten für eine Ressource. Clients können Zugriff auf diese Ressource erlangen, indem sie ein SAS-Token bereitstellen. Dieses setzt sich aus dem Ressourcen-URI, auf den zugegriffen wird, und einer Ablaufangabe zusammen, die mit dem konfigurierten Schlüssel signiert wird.
Sie können Schlüssel für SAS für einen Relaynamespace konfigurieren. Im Gegensatz zum Service Bus-Messaging unterstützen Relay Hybrid Connections nicht autorisierte oder anonyme Sender. Wie in dem folgenden Screenshot des Portals gezeigt wird, können Sie den anonymen Zugriff auf die Entität bei der Erstellung aktivieren:
Wenn Sie SAS verwenden möchten, können Sie ein SharedAccessAuthorizationRule-Objekt für einen Relaynamespace konfigurieren, das aus den folgenden Eigenschaften besteht:
- KeyName , der die Regel identifiziert.
- PrimaryKey – einem kryptografischen Schlüssel, der zum Signieren/Überprüfen von SAS-Token verwendet wird.
- SecondaryKey – einem kryptografischen Schlüssel, der zum Signieren/Überprüfen von SAS-Token verwendet wird.
- Rechten , die die Auflistung der erteilten Lausch-, Sende- oder Verwaltungsrechte (Listen, Send, Manage) darstellen.
Autorisierungsregeln, die auf Namespace-Ebene konfiguriert werden, können Zugriff auf alle Relayverbindungen in einem Namespace für Clients mit Token erteilen, die mithilfe des entsprechenden Schlüssels signiert wurden. Bis zu zwölf solcher Autorisierungsregeln können für einen Relaynamespace konfiguriert werden. Standardmäßig wird für jeden Namespace bei der ersten Bereitstellung ein SharedAccessAuthorizationRule -Objekt mit allen Rechten konfiguriert.
Für den Zugriff auf eine Entität erfordert der Client ein SAS-Token, das mithilfe einer bestimmten SharedAccessAuthorizationRule generiert wurde. Das SAS-Token wird anhand des HMAC-SHA256-Codes einer Ressourcenzeichenfolge generiert. Diese besteht aus dem Ressourcen-URI, auf den der Zugriff beansprucht wird, sowie aus einer Ablaufangabe mit einem kryptografischen Schlüssel, der der Autorisierungsregel zugeordnet ist.
Die Unterstützung der SAS-Authentifizierung für Azure Relay ist im Azure .NET SDK, Version 2.0 oder höher, inbegriffen. SAS umfasst Unterstützung für eine SharedAccessAuthorizationRule. Alle APIs, die eine Verbindungszeichenfolge als Parameter akzeptieren, enthalten Unterstützung für SAS-Verbindungszeichenfolgen.
Beispiele
- Hybridverbindungen: .NET, Java, JavaScript
- WCF Relay: .NET
Nächste Schritte
- Weitere Informationen zu SAS finden Sie unter SAS-Authentifizierung (Shared Access Signature) bei Service Bus .
- Ausführliche Informationen zur Hybrid Connections-Funktion finden Sie im Azure Relay Hybrid Connections-Protokollhandbuch.
- Die entsprechenden Informationen zur Authentifizierung und Autorisierung über das Service Bus-Messaging finden Sie unter Service Bus-Authentifizierung und -Autorisierung.