Credential Flow Vorteile: Nachteile: Grant Auth Flow Vorteile: Nachteile: Weiterlesen Zwei Oauth2 Flows – Vorteile / Nachteile
OAuth2
OAuth2 ist ein System, das Anwendungen dabei hilft, sicher auf die Daten eines Benutzers zuzugreifen, ohne dass dieser sein Passwort direkt teilen muss. Es gibt zwei wichtige Flows für das HIN System: der Grant Flow und der Credential Flow.
Der Grant Flow wird verwendet, wenn ein Benutzer sich bei einer Anwendung anmeldet und dieser der Anwendung den Zugriff auf die eigenen Daten gestattet. Ein Beispiel hierfür ist die Anmeldung bei einer Anwendung über ein Google-Konto, bei der der Anwendung der Zugriff auf die E-Mails des Benutzers erlaubt wird. Die Anwendung erhält einen sogenannten Autorisierungscode, den die Anwendung anschliessend gegen ein Access Token eintauscht. Dieser Token gewährt der Anwendung die Erlaubnis, auf die Daten des Benutzers zuzugreifen.
Bei uns haben wir hierfür Beispielsweise «Filebox», welcher für den Grant Flow geeignet werde. In diesem Fall ist es wichtig, welcher User die Anfrage macht, denn der Inhalt der Filebox ist pro User anders.
Der Credential Flow funktioniert anders, denn hier gibt es keinen Benutzer, der zustimmen muss. Die Anwendung fordert einfach ein Access Token an, um auf eine API oder andere Daten zuzugreifen. Dies geschieht in der Regel, wenn zwei Anwendungen/Maschinen direkt miteinander kommunizieren müssen, ohne dass ein Benutzer in den Prozess involviert ist.
Beispielsweise wäre der Service Covercard korrekt für den Credential Flow, da es hier keine Rolle spielt, wer der User ist.
Zwei Oauth2 Flows - Vorteile & Nachteile
Der Auth Token
Einleitung Auth Token
Bevor auf geschützte Daten oder Funktionen zugegriffen werden kann, muss in beiden Fällen – sowohl im CC Flow als auch im Grant Flow – zunächst ein Auth Token eingeholt werden. Der Prozess ist in beiden Fällen ähnlich: Das Auth Token dient als Nachweis, dass der Benutzer oder die Anwendung zum Zugriff auf die angeforderten Ressourcen … Weiterlesen Einleitung Auth Token
Der Bezug des Auth-Tokens (OTP) – Grant Flow & Credential Flow:
Im Grant Flow gibt es zwei Möglichkeiten, wie der Auth Token abgerufen werden kann. Für den Credential Flow gilt nur Variante A. Innerhalb der Gültigkeitsdauer muss der Token in einem POST-Request verwendet werden, um die angeforderten Daten zu erhalten. Für den Nutzer bedeutet dies in der Regel, den Token in ein dafür vorgesehenes Feld einzugeben, das von den Entwicklern bereitgestellt wird. Dies kann jedoch mit … Weiterlesen Der Bezug des Auth-Tokens (OTP) – Grant Flow & Credential Flow:
Der Post Request
Der Post Request
Im Zusammenhang mit OAuth 2.0 bezeichnet der POST-Request die HTTP-Anfrage, die ein Client an den Autorisierungsserver sendet, um ein Access Token zu erhalten. Nachdem der Benutzer den Zugriff auf seine Daten autorisiert hat, wird der Client mit einem Autorisierungscode ausgestattet, den er in einem POST-Request zusammen mit anderen erforderlichen Informationen (wie Client-ID, Client-Secret und Redirect-URI) an den Token-Endpunkt des … Weiterlesen Der Post Request
Der Access Token - Für CC & Grant Flow
Einleitung Access Token – Für CC & Grant Flow
Ein Access Token ist notwendig, um auf geschützte Daten oder Funktionen einer Anwendung zuzugreifen. Um dieses Token zu erhalten, muss zuerst der Auth Token über einen POST-Request an den Server gesendet werden. Der Auth Token dient dabei als Authentifizierung, dass der Nutzer oder die Anwendung berechtigt ist, ein Access Token zu erhalten. Nach dem Absenden des POST-Requests gibt der Server eine Antwort zurück, die das Access Token enthält. Mit diesem … Weiterlesen Einleitung Access Token – Für CC & Grant Flow
Der Bezug eines Access Tokens mittels Curl – Credential Flow
Der Bezug des Client_Secret für die Curl Anfrage Beim Bezug des Access Tokens muss definiert werden, für welche TokenGruppe das Token gültig sein soll und das Client_Secret muss auf apps.hin.ch geholt werden, im Gegensatz zum Grant Flow, welches HIN definieren muss. Der Auth Token wird wie bei Variante A über apps.hin.ch geholt. Der Reiter erscheint erst wenn Initial eine fehlerhafter Request gesendet wird, … Weiterlesen Der Bezug eines Access Tokens mittels Curl – Credential Flow
Zugriff auf HIN Geschützte Applikationen mit Access Token
Einleitung Zugriff auf HIN Geschützte Applikationen mit Access Token
Mit einem Access Token kann ein GET-Request an eine Anwendung oder API gesendet werden, um auf geschützte Daten zuzugreifen. Das Access Token wird dabei in der Anfrage übermittelt, um sicherzustellen, dass die Anfrage von einer autorisierten Quelle kommt. Sobald die Anwendung das Token überprüft hat, liefert sie die angeforderten Daten zurück, sofern das Token gültig ist. Das Access Token stellt also sicher, dass nur berechtigte Nutzer oder Anwendungen Zugriff … Weiterlesen Einleitung Zugriff auf HIN Geschützte Applikationen mit Access Token
Zugriff mit Access Token via Curl
curl –header ‘Authorization: Bearer <Access Token>’ https://<oauth2.application.hin.ch> Beispiel anhand Covercard: curl –location ‹https://oauth2.covercard.hin.ch/covercard/servlet/ch.ofac.ca.covercard.CaValidationHorizontale?type=XML&langue=3&carte=<krankenkassen_karten_nr>&ReturnType=42a› –header ‹Authorization: Bearer <covercard_Access Token>› Weiterlesen Zugriff mit Access Token via Curl
Der Refresh Token
Beispiel Code für ein Refresh Token Python
import requestsimport time def get_new_access_token(refresh_token): url = "https://oauth2.hin.ch/REST/v1/OAuth/GetAccessToken" payload = f’grant_type=refresh_token&refresh_token={refresh_token}&client_id=ch.IhreClientID&client_secret={client_secret}› headers = { ‹Content-Type›: ‹application/x-www-form-urlencoded›, ‹Cookie›: ‹ObSSOCookie=/e0Sgr3R5FiCiOt+crc934SUK8g1RfTpUpytOJJ3sIivmXUBB3voBCq9lOc5j7A3/tYG3aTaT8Q-‹ } response = requests.post(url, headers=headers, data=payload) print(response.text) if response.status_code == 200: token_data = response.json() new_access_token = token_data[‹access_token›] # Optional: Ein neues Refresh-Token zurückgeben, wenn es vorhanden ist new_refresh_token = token_data.get(‹refresh_token›, refresh_token) return new_access_token, new_refresh_token else: print(f"Fehler beim Abrufen des Tokens: {response.status_code} – {response.text}") return None, refresh_token # Beispiel-Schleife, die regelmäßig das Access Token erneuertdef main(): refresh_token = ‹rteqr4› # Dein initiales Refresh Token while True: # Hier würde der Code für … Weiterlesen Beispiel Code für ein Refresh Token Python
Einleitung Refresh Token
Ein Refresh Token wird verwendet, um den Zugriff auf eine Anwendung oder einen Dienst aufrechtzuerhalten, ohne dass der Benutzer sich immer wieder neu anmelden muss. Nachdem ein Access Token abgelaufen ist, kann das Refresh Token dazu genutzt werden, ein neues Access Token zu erhalten, ohne dass der Benutzer seine Anmeldedaten erneut eingeben muss. Dies sorgt … Weiterlesen Einleitung Refresh Token
Ablauf Refresh Token
Nachdem der Benutzer sich erfolgreich bei der Anwendung angemeldet hat, erhält der Client ein Access Token und ein Refresh Token. Das Access Token hat eine begrenzte Gültigkeitsdauer, während das Refresh Token länger gültig bleibt. Wenn das Access Token abläuft, sendet der Client einen POST-Request an den Token-Endpunkt des Autorisierungsservers. In diesem Request übermittelt der Client das Refresh Token sowie die Client-ID und das Client-Secret. Der Server … Weiterlesen Ablauf Refresh Token
Flow Charts
Flow Charts
Grant Flow Credential Flow Weiterlesen Flow Charts
Vorraussetzungen
Vorraussetzungen
Anforderungen OAuth2 Grant Flow OAuth2 Credential Flow Grant Type authorization_code(Autorisierungscode-Flow) client_credentials(Anwendungszugriff ohne Benutzer) State Hat keine Signifikanz, muss aber mitgegeben werden. Der Inhalt spielt keine Rolle. Hat keine Signifikanz, muss aber mitgegeben werden. Der Inhalt spielt keine Rolle. Access Token Ja, wird nach dem Austausch des Autorisierungscodes angefordert Ja, wird direkt nach der Anfrage nach den client_credentials angefordert client_id Ja, … Weiterlesen Vorraussetzungen