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 Shared Access Signatures (SAS). 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 azure role-based access control (Azure RBAC) für eine differenzierte Kontrolle über den Zugriff eines Clients auf Ressourcen. Mit Azure RBAC können einem Sicherheitsprinzipal Berechtigungen erteilt werden. Bei einem Sicherheitsprinzipal kann es sich um einen Benutzer, um eine Gruppe oder um einen Anwendungsdienstprinzipal handeln. Der Sicherheitsprinzipal wird von der Microsoft Entra-ID authentifiziert, um ein OAuth 2.0-Token zurückzugeben. 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:

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 der Microsoft Entra-ID müssen keine Token in Ihrem Code gespeichert werden und potenzielle Sicherheitsrisiken riskieren. Es wird empfohlen, microsoft Entra-ID nach Möglichkeit mit Ihren 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:

A dialog box titled

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

Nächste Schritte