Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwaltete Identitäten für Azure-Ressourcen stellen für Azure-Dienste eine automatisch verwaltete Identität in Microsoft Entra ID bereit. Sie können diese Identität verwenden, um sich bei Azure Service Bus zu authentifizieren, ohne Anmeldeinformationen in Ihrem Code zu speichern.
Dieser Artikel führt Sie durch das Aktivieren einer verwalteten Identität, das Zuweisen der entsprechenden ServiceBus-Rolle und das Herstellen einer Verbindung mit Service Bus über Ihren Anwendungscode.
Hinweis
Wenn Sie mit verwalteten Identitäten nicht vertraut sind, lesen Sie "Verwaltete Identitäten für Azure-Ressourcen".
Voraussetzungen
Um verwaltete Identitäten mit Azure Service Bus zu verwenden, benötigen Sie Folgendes:
- Ein Azure-Abonnement. Falls Sie kein Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
- Ein Azure Service Bus-Namespace. Um einen zu erstellen, siehe Erstellen eines Service Bus Namespace.
- Eine verwaltete Identität, die in Ihrer Azure-Computeressource aktiviert ist. Siehe:
Wichtig
Sie können lokale Authentifizierung oder SAS-Schlüsselauthentifizierung für einen Service Bus-Namespace deaktivieren und nur Microsoft Entra-Authentifizierung zulassen. Eine schrittweise Anleitung finden Sie unter Deaktivieren der lokalen Authentifizierung.
Zuweisen einer Service-Bus-Rolle an die verwaltete Identität
Microsoft Entra autorisiert den Zugriff auf gesicherte Ressourcen über rollenbasierte Azure-Zugriffssteuerung (RBAC). Azure Service Bus bietet integrierte Azure-Rollen, die allgemeine Berechtigungen umfassen, die für den Zugriff auf ServiceBus-Entitäten verwendet werden. Sie können auch benutzerdefinierte Rollen definieren.
In der folgenden Tabelle sind die integrierten Azure-Rollen zum Autorisieren des Zugriffs auf einen Service Bus-Namespace aufgeführt:
| Rolle | Beschreibung |
|---|---|
| Azure Service Bus-Datenbesitzer | Vollzugriff auf den Service Bus-Namespace und seine Entitäten (Warteschlangen, Themen, Abonnements und Filter) |
| Azure Service Bus Data Sender | Senden von Nachrichten an Service Bus Warteschlangen und Themen |
| Azure Service Bus-Datenempfänger | Empfangen von Nachrichten aus ServiceBus-Warteschlangen und -Abonnements |
Zuweisen einer Rolle im Azure-Portal
So weisen Sie eine Rolle einer verwalteten Identität im Azure-Portal zu:
- Wechseln Sie zu Ihrem Service Bus-Namespace, zur Warteschlange oder zum Thema.
- Wählen Sie im linken Menü Zugriffssteuerung (IAM).
- Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen.
- Wählen Sie auf der Registerkarte " Rolle " die entsprechende Dienstbusdatenrolle aus.
- Wählen Sie auf der Registerkarte " Mitglieder " die Option "Verwaltete Identität" und dann " Mitglieder auswählen" aus.
- Wählen Sie die verwaltete Identität für Ihre Azure-Ressource aus.
- Wählen Sie "Überprüfen+ Zuweisen" aus.
Weitere Informationen finden Sie unter Zuweisen von Azure-Rollen mithilfe des Azure-Portals.
Auswählen des Ressourcenbereichs
Bevor Sie eine Azure-Rolle zuweisen, bestimmen Sie den Umfang des Zugriffs, den die verwaltete Identität benötigt. Gewähren Sie nur den engstmöglichen Zugriffsbereich.
In der folgenden Liste werden die Ebenen beschrieben, auf denen Sie den Zugriff auf Service Bus-Ressourcen einschränken können, beginnend mit dem kleinstmöglichen Bereich:
Warteschlange, Thema oder Abonnement: Die Rollenzuweisung gilt für die jeweilige Service Bus-Entität.
Service Bus-Namespace: Die Rollenzuweisung umfasst die gesamte Topologie von Service Bus unter dem Namespace.
Ressourcengruppe: Die Rollenzuweisung gilt für alle Service Bus-Ressourcen unter der Ressourcengruppe.
Abonnement: Die Rollenzuweisung gilt für alle Service Bus-Ressourcen in allen Ressourcengruppen im Abonnement.
Hinweis
Azure-Rollenzuweisungen können bis zu fünf Minuten dauern, bis sie verteilt werden.
Zuweisen einer Rolle mit Azure CLI
Das Azure-Portal unterstützt das Zuweisen verwalteter Identitäten zu Service Bus-Rollen auf der Themenabonnementebene nicht. Verwenden Sie den Befehl "Azure CLI az role assignment create ", um eine Rolle in einem beliebigen Bereich zuzuweisen:
az role assignment create \
--role $service_bus_role \
--assignee $assignee_id \
--scope /subscriptions/$subscription_id/resourceGroups/$resource_group/providers/Microsoft.ServiceBus/namespaces/$service_bus_namespace/topics/$service_bus_topic/subscriptions/$service_bus_subscription
Weitere Informationen dazu, wie integrierte Rollen definiert sind, finden Sie unter Grundlegendes zu Rollendefinitionen. Informationen zum Erstellen von benutzerdefinierten Azure-Rollen finden Sie unter Benutzerdefinierte Azure-Rollen.
Hinweis
Wenn der Quelldienst oder die App nicht neu gestartet wird, nachdem Sie die verwaltete Identität aus der Dienstbus-RBAC-Rolle entfernt haben, sendet oder empfängt die Quell-App möglicherweise weiterhin Nachrichten an oder von der ServiceBus-Entität, bis das Token abläuft (Standardtokengültigkeit beträgt 24 Stunden). Dieses Verhalten ist beabsichtigt.
Nachdem Sie die verwaltete Identität der Quelle aus der RBAC-Rolle entfernt haben, starten Sie die App oder den Dienst der Quelle neu, um das Token sofort ablaufen zu lassen und zu verhindern, dass sie Nachrichten von der Service Bus Entität senden oder empfangen.
Herstellen einer Verbindung mit Service Bus mithilfe der verwalteten Identität in Azure SDKs
Azure SDKs für .NET, Java, JavaScript und Python unterstützen die verwaltete Identitätsauthentifizierung mit Service Bus. Das folgende Beispiel zeigt, wie Sie eine Verbindung mit dem .NET SDK herstellen.
In .NET wird das Objekt ServiceBusClient mithilfe eines Konstruktors initialisiert, der einen vollqualifizierten Namespace und ein TokenCredentialverwendet. Das DefaultAzureCredential leitet sich vom TokenCredentialab, das automatisch die verwaltete Identität verwendet, die für die App konfiguriert ist. Der Flow vom Kontext der verwalteten Identität zu Service Bus und der Autorisierungshandshake werden automatisch vom Token Credential verarbeitet. Dies ist ein einfacheres Modell als die Verwendung von SAS.
var client = new ServiceBusClient("contoso.servicebus.windows.net", new DefaultAzureCredential());
Sie senden und empfangen Nachrichten wie gewohnt mit ServiceBusSender und ServiceBusReceiver oder ServiceBusProcessor.
Schrittweise Anleitungen zum Senden und Empfangen von Nachrichten mithilfe einer verwalteten Identität finden Sie in den folgenden Schnellstarts. Diese Schnellstartanleitungen enthalten den Code für die Verwendung eines Dienstprinzipals zum Senden und Empfangen von Nachrichten, aber der Code ist für die Verwendung einer verwalteten Identität identisch.
Hinweis
Verwaltete Identitäten funktionieren nur innerhalb der Azure-Umgebung, auf App Service, Azure-VMs und Skalierungssätzen. Für .NET-Anwendungen stellt die Microsoft.Azure.Services.AppAuthentication-Bibliothek, die das Service Bus NuGet-Paket verwendet, eine Abstraktion über dieses Protokoll bereit und unterstützt eine lokale Entwicklungsumgebung. Mit dieser Bibliothek können Sie ihren Code auch lokal auf Ihrem Entwicklungscomputer mit Ihrem Benutzerkonto aus Visual Studio, Azure CLI oder microsoft Entra Integrated Authentication testen. Weitere Informationen zu Optionen für die lokale Entwicklung mit dieser Bibliothek finden Sie unter Dienst-zu-Dienst-Authentifizierung in Azure Key Vault mithilfe von .NET.