Skip to content

Authentisierung für PIS und KIS

Authentisierungsmethode für das Ausstellen eines E-Rezepts

Als Authentisierungsmethode wird oAuth2 eingesetzt. Die vorgängig eingesetzte SAML Assertion wird nicht mehr aktiv unterstützt. 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:

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.1