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:
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:

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>'
Mitgabe des Auth Handles:

Diese 2 Varianten zur Mitgabe des Auth Handles werden angeboten.

  • als Präfix im Authorization Header: --header 'Authorization: Bearer oauth:{auth handle}'
  • als eigener Header (oAuth Standard): --header 'Token-Type: OAUTH' --header 'Authorization: Bearer {auth handle}' Der Token-Type Header lässt folgende Typen zu:

Umgebungsvariablen

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

$CI_PIPELINE_CREATED_AT

version 1.0.0