Swagger-UI Extension für Azure AD Authentifizierung

Bei verteilten Systemen, wie Cloud Lösungen, spielt die Generierung clientseitiger Proxies eine wichtige Rolle. Vor allem wenn die Middleware öffentlich verfügbar und von allen gängigen Sprachen konsumiert werden soll, wie es bei Cloud gehosteten API’s zumeist der Fall ist.

Grundlage für die Generierung clientseitiger Proxies ist eine plattform- und programmiersprachenunabhängige Beschreibungssprache der Netzwerkdienste. Bei RESTful Web services wird häufig die OpenAPI Spezifikation (früher bekannt als Swagger Spezifikation) für die Beschreibung der Dienste verwendet.

Swashbuckle bietet für ASP.NET eine ausgereifte und quelloffene OpenAPI Implementierung, die auch eine Oberfläche zum Testen der API (Swagger-UI) beinhaltet. Swagger-UI ermöglicht Benutzern über eine Webseite mit API‘s zu interagieren ohne dafür etwas implementieren zu müssen.

Kompliziert wird es, wenn Authentifizierung und Autorisierung der API ins Spiel kommen. Im Azure Umfeld wird dafür häufig Azure Active Directory als Identity Management as a Service (IDaaS) verwendet. Der API Entwickler muss dann über detailliertes OAuth2 Wissen verfügen, einen geeigneten OAuth2 Flow auswählen sowie einen Authentifizierungsfilter implementieren um die vom Azure Active Directory gesicherte API über Swagger-UI aufrufen zu können.

Das white duck NuGet Paket „Whiteduck.Swagger.AADExtension“ bietet eine Erweiterung der Swagger-Optionen an, um die Autentifizierung des Swagger-UI Clients mit dem Azure Active Directory zu vereinfachen. Der Benutzer kann sich nach Implementierung über die Swagger-UI Client Applikation gegen das Azure Active Directory authentifizieren und hat damit Berechtigung die API aufzurufen.

Weitere Informationen zur Anwendung des Pakets sowie weitere Projekt-Tools und Extensions finden sich bei GitHub: https://github.com/whiteducksoftware/whiteduck.swagger.aadextension