OAuth2-Dokumentation für Anbieter von Drittapplikationen
Einleitung
HIN ermöglicht die Nutzung von Applikationen, die über den HIN Access Control Service (ACS) mittels OAuth2 an die HIN Plattform angebunden sind. OAuth2 ist ein Autorisierungsframework, das es ermöglicht, dass Applikationen auf bestimmte Ressourcen zugreifen können, ohne dass der Benutzer seine Anmeldedaten preisgeben muss. In diesem Dokument werden die Grundlagen von OAuth2 bei HIN erläutert und die beiden unterstützten Flows - Authorization Code Flow und Client Credentials Flow - vorgestellt.
Worum geht es?
OAuth2 wird benötigt, um den Zugriff auf bestimmte Applikationen und Ressourcen zu kontrollieren. Ein Beispiel hierfür ist die Applikation Covercard, bei der der Authorization Code Flow verwendet wird, da davon ausgegangen wird, dass der Benutzer die Daten auf seiner Versichertenkarte lesen kann. Ein weiteres Beispiel ist der E-Rezept Service, der ebenfalls den Authorization Code Flow verwendet, um sicherzustellen, dass nur berechtigte Benutzer auf die Rezepte zugreifen können.
Die beiden OAuth-Flows
HIN unterstützt zwei verschiedene OAuth-Flows: den Authorization Code Flow und den Client Credentials Flow.
Authorization Code Flow
Der Authorization Code Flow ist geeignet, wenn ein Benutzer eine Applikation nutzen möchte, die auf eine andere Applikation zugreifen muss. Der Benutzer wird auf die HIN-Applikation (apps.hin.ch) weitergeleitet, an der er sich authentisieren muss. Die HIN-Applikation generiert ein temporäres Token (Auth Code), das an die Drittapplikation weitergegeben wird. Mit diesem Auth Code kann die Drittapplikation ein Access Token beziehen, mit dem sie auf die entsprechende Applikation zugreifen kann.
Beispiele für die Nutzung des Authorization Code Flows sind die Services CoverCard und der E-Rezept. Bei beiden Anwendungen ist es wichtig, dass der Benutzer authentisiert wird, bevor er auf die entsprechenden Ressourcen zugreifen kann.
Es gibt zwei Varianten, um den Auth Code an die Drittapplikation weiterzugeben:
- Anzeigen des Auth Code in der apps.hin.ch-Webapplikation: Der Auth Code wird in der Webapplikation angezeigt und per Copy/Paste in die Drittapplikation übertragen.
- Übermittlung über Query Parameter: Bei der Weiterleitung des Benutzers an apps.hin.ch gibt die Drittapplikation bereits mit, auf welchen Endpunkt (Redirect_URI) er den Auth Code möchte.
Client Credentials Flow
Der Client Credentials Flow ist geeignet für Machine-to-Machine-Anwendungsfälle, bei denen kein Benutzer involviert ist. Der Client Credentials Flow entfällt den Bezug des Auth Codes und somit die Interaktion mit einem Endbenutzer. Das ausgestellte Access Token ist jedoch nur für einen spezifischen, vorkonfigurierten Benutzer gültig.
Weiterführende Informationen in Bezug auf E-Rezept
Weitere Informationen dazu finden Sie auf folgender Webseite: E-Rezept