Skip to content

Authentisierung für PIS und KIS ​

Authentisierungsmethode für das Ausstellen eines E-Rezepts ​

Als Authentisierungsmethode wird oAuth2 eingesetzt. Die ausführliche Dokumentation, wie der oAuth2 Service von HIN implementiert, finden Sie hier: https://cdn.hin.ch/oauth2/manual/DE/Auth-Code/Auth-Code-Einleitung.html

Nachfolgend wird in der Schritt-für-Schritt Anleitung erklärt, wie die Erstellung und Signierung eines E-Rezepts durchgeführt wird. Das erste Bearer Token ist 30 Tage lang gültig und kann mittels Refresh Token beliebig oft ohne Bestätigung des Users erneuert werden. Das zweite Bearer Token (=auth handle) ist exaxt 12 Stunden lang gültig und kann nicht automatisiert erneuert werden. Der Neubezug eines neuen auth handles bedingt eine erneute Bestätigung im Browserfenster durch den User.

Bitte beachten Sie, dass die URLs case-sensitive sind:

  1. Es wird ein oAuth2 auth code benötigt, das auf zwei verschiedene Arten bezogen werden kann:
    Variante 1: auf https://apps.hin.ch -> ID Delegation für «HIN Authservice INT» bzw. «HIN Authservice» oder
    Variante 2: über die URL (die redirect_uri wird von Ihnen bestimmt und muss dem HIN Support zur Hinterlegung mitgeteilt werden)
shellscript
http://apps.hin.ch/REST/v1/OAuth/GetAuthCode/hin_authservice_int?response_type=code&client_id=<client_id>&redirect_uri=http%3A%2F%2Flocalhost%2FgetAccessToken
  1. Der oAuth2 auth code muss mit folgendem Befehl in ein Bearer Token umgewandelt werden:
shellscript
curl -H "Content-Type: application/x-www-form-urlencoded"
--data "grant_type=authorization_code&redirect_uri=http%3A%2F%2Flocalhost%2FgetAccessToken&code=<auth_code>&client_id=<client_id>&client_secret=<client_secret>" https://oauth2.hin.ch/REST/v1/OAuth/GetAccessToken

ACHTUNG

redirect_uri leer lassen, falls der auth code über apps.hin.ch gelöst wurde.

  1. Login durchführen (Bsp für INT-Umgebung):
shellscript
curl --request POST --url 'https://oauth2.authservice-int.hin.ch/v1/oauth?targetUrl=http%3A%2F%2Flocalhost%2Fsuccess&style=redirect' --header 'accept: application/json' --header 'Authorization: Bearer <bearer_token_for_auth_service>'
  1. Die retournierte URL wird aufgerufen und der oAuth auth code kopiert.

  2. oAuth code in Auth Handle umwandeln (Bsp für INT-Umgebung):

shellscript
curl --request POST --url 'https://oauth2.authservice-int.hin.ch/v1/oauth/auth_handle' -d '{\"authCode\":\"<auth_code>\"}' --header 'accept: application/json' --header 'Content-Type: application/json' --header 'Authorization: Bearer <oauth_token_for_auth_service>'
  1. Retourniertes Auth Handle:
json
{
 "authHandle":"wnVQZ54aG3348lxUO5tw"
}

Mitgabe des oAuth/JWT Tokens: Diese 2 Varianten zur Mitgabe des Tokens werden angeboten.

  • als Präfix im Authorization Header: --header 'Authorization: Bearer acs:{bearer token}'
  • als eigener Header (oAuth Standard): --header 'Token-Type: HIN_ACS' --header 'Authorization: Bearer {bearer token}'

Der Token-Type Header lässt folgende Typen zu:

  • OAUTH: für das Signieren
  • HIN_JWT: für die Abgabe mittels OVAN ID
  • HIN_ACS: für die Abgabe mittel HIN ID

Umgebungsvariablen

IdentifierTESTPROD
token grouphin_authservice_inthin_authservice
ServiceUrloauth2.authservice-int.hin.ch/v1/oauth/auth_handleoauth2.authservice.hin.ch/v1/oauth/auth_handle

version 0.10.2