
Azure API Management (APIM) sicher mit Service Bus über Managed Identity verbinden
In Integrationsszenarien mit mehr als einem eingehenden Endpunkt ist es oft sinnvoll, API Management Services (oder kurz APIM) zu verwenden, um Ihre APIs zu verwalten, zu überarbeiten und zu testen – neben vielen anderen Dingen. In der Azure-Welt bedeutet das den Einsatz des Azure API Management Service.
Nachdem Ihre APIM-Instanz eingehende Anfragen entgegengenommen und – falls nötig – umgewandelt hat, werden sie an die Komponenten weitergeleitet, die für die eigentliche Datenverarbeitung verantwortlich sind. Das kann zum Beispiel ein Power Automate-Flow oder eine HTTP-getriggerte Azure Function sein.
Aber was, wenn Sie Azure Service Bus für eine zuverlässige Kommunikation zwischen Frontend und Backend nutzen möchten? Oder wenn Sie bereits Service Bus verwenden, aber mit einem Zwischensystem, das eine potenzielle Fehlerquelle darstellt, und Sie das Setup vereinfachen und zuverlässiger machen möchten?
Genau darum geht es in diesem Artikel: Wir zeigen Ihnen, wie Sie APIM und Service Bus so einrichten, dass Anfragen, die bei APIM eingehen, direkt an eine Service Bus-Warteschlange weitergeleitet werden. Spoiler: Es ist ziemlich einfach und dauert weniger als 15 Minuten – vorausgesetzt, Ihr Benutzerkonto hat die nötigen Berechtigungen in Azure. Los geht’s!
Schritt für Schritt zur Integration
Wir werden Managed Identities verwenden, um einen Azure APIM-Dienst mit einem Service Bus-Namespace zu integrieren. Wir aktivieren eine systemzugewiesene Managed Identity für unseren APIM-Dienst, richten die Verarbeitung eingehender Anfragen ein und weisen dieser Identität über Azure-RBAC eine Rolle für den Service Bus-Namespace zu. Schauen wir uns diese Schritte im Detail an.
APIM einrichten
Öffnen Sie im Azure-Portal die Seite Ihres APIM und navigieren Sie zu Security > Managed identities (siehe Bild unten). Im Tab System-assigned aktivieren Sie die systemzugewiesene Managed Identity über den bereitgestellten Button. Wir verwenden hier eine systemzugewiesene Managed Identity, weil sie direkt an unsere APIM-Ressource gebunden sein soll. Nach der Aktivierung sollten Sie das hier sehen:

Beachten Sie, dass unsere APIM-Ressource nun bei Microsoft Entra ID registriert ist und eine Principal-ID hat. Diese werden wir im nächsten Schritt verwenden, um der Service Principal eine Rolle zuzuweisen.
Als Nächstes müssen wir die Verarbeitung eingehender Anfragen einrichten. Gehen Sie dazu in den Bereich APIs (im APIs-Untermenü), wo Ihre API-Operationen definiert sind, und wählen Sie die API-Operation aus, die Sie konfigurieren möchten. Nach der Einrichtung sollte das ungefähr so aussehen:

Kommen wir nun zur Verarbeitung eingehender Anfragen. Wir werden eingehende Requests an den REST-API-Endpunkt der entsprechenden Service Bus-Warteschlange weiterleiten und die APIM-Managed-Identity zur Authentifizierung verwenden. Dafür fügen wir folgende Richtlinien (Policies) hinzu:
- Backend-Service-URL auf den Hostnamen Ihres Service Bus-Namespace setzen ([namespace_name].servicebus.windows.net)
- Request-Pfad umschreiben, sodass er auf unsere Service Bus-Warteschlange zeigt (/[queue_name]/messages)
- Authentifizierung über die Managed Identity durchführen
- Den SessionId–Header hinzufügen, den Service Bus erwartet – in unserem Fall einfach die Request-ID
Wenn Sie diese Richtlinien eingerichtet haben, sollten Sie in der Code-Ansicht der Inbound-Policies etwas wie das hier sehen:

Und das war’s schon! Deine Anfragen werden jetzt an den REST-Endpunkt deiner Service Bus-Warteschlange weitergeleitet. Der letzte Schritt besteht darin, der Managed Principal von APIM die Berechtigung zu geben, Nachrichten an die Service Bus-Warteschlangen zu senden.
Service Bus einrichten
Navigieren Sie zu Ihrem Service Bus-Namespace in Azure und öffnen Sie im linken Menü den Bereich Access Control. Da wir möchten, dass unser APIM Nachrichten an die Warteschlangen im Service Bus senden kann, weisen wir der Service Principal von APIM die Rolle Azure Service Bus Data Sender zu. Nach der erfolgreichen Zuweisung sollten Sie etwas wie das hier sehen:

Und das war’s! Entra ID übernimmt die Authentifizierung, sodass Sie keine Anmeldeinformationen speichern müssen. Nun sollte eine Anfrage von unserer APIM-Instanz in der zuvor eingerichteten Service Bus-Warteschlange landen.
Integration testen
Jetzt wird es Zeit zu überprüfen, ob unser Setup funktioniert. Gehen Sie in Ihrem APIM-Dienst zu der API-Operation, die Sie für das Weiterleiten an den Service Bus konfiguriert haben, und wechseln Sie auf den Tab Test. Hier können Sie Ihre Testanfrage zusammenstellen. Wenn Sie fertig sind, klicken Sie auf Send, wie im Bild unten gezeigt.

Nachdem Sie eine erfolgreiche Antwort erhalten haben, werfen Sie einen Blick in Ihre Service Bus-Warteschlange. Wenn alles geklappt hat, sollten Sie sehen, dass eine neue Nachricht in der Warteschlange vorhanden ist:

Fazit und nächste Schritte
Azure APIM in Kombination mit Service Bus zu verwenden, ist einfacher als es scheint. Sobald Sie eine Managed Identity für Ihren APIM-Dienst aktiviert und ihr die Rolle Azure Service Bus Data Sender für den entsprechenden Service Bus-Namespace zugewiesen haben, müssen Sie nur noch ein paar APIM-Richtlinien wie oben beschrieben einrichten – und Ihre eingehenden Anfragen landen zuverlässig in der gewünschten Service Bus-Warteschlange.
Vielen Dank fürs Lesen und viel Erfolg bei Ihren Azure-Projekten! Kontaktieren Sie proMX, wenn Sie Unterstützung beim Design und der Umsetzung effektiver, zuverlässiger Cloud-Lösungen auf Azure-Basis benötigen!