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:
- 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)
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- Der oAuth2 auth code muss mit folgendem Befehl in ein Bearer Token umgewandelt werden:
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/GetAccessTokenACHTUNG
redirect_uri leer lassen, falls der auth code über apps.hin.ch gelöst wurde.
- Login durchführen:
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>'Die retournierte URL wird aufgerufen und der oAuth auth code kopiert.
oAuth code in Auth Handle umwandeln:
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
| Identifier | TEST | PROD |
|---|---|---|
| token group | hin_authservice_int | hin_authservice |
| ServiceUrl | oauth2.authservice-int.hin.ch/v1/oauth/auth_handle | oauth2.authservice.hin.ch/v1/oauth/auth_handle |
$CI_PIPELINE_CREATED_AT