Integration eines O-Profil-Verfahrens
Der USP Identity Provider (IdP) ist auf Basis von Keycloak umgesetzt und unterstützt alle gängigen OpenID-Connect-(OIDC)-Client-Konfigurationen. Für jede Stage der anzubindenden Anwendung wird im USP ein eigener OIDC-Client eingerichtet. Im Zuge des Anmeldevorgangs prüft das USP, ob die angemeldete Person über die erforderlichen Berechtigungen für den jeweiligen Client verfügt.
Login über das O-Profil
Ablauf eines Logins
- Die Benutzerin bzw. der Benutzer startet die Anmeldung, indem das Verfahren über den entsprechenden Link auf mein.usp.gv.at aufgerufen wird.
- Die Anwendung erkennt, dass es sich um einen Login über das USP handelt und leitet die Benutzerin bzw. den Benutzer unter Angabe der Client‑ID und der gewünschten Redirect‑URI zum Authentifizierungs-Endpunkt des USP‑IdPs weiter.
- Falls noch keine aktive Session besteht, erfolgt die Anmeldung beim USP.
- Anschließend wird die Benutzerin bzw. der Benutzer zur angegebenen Redirect‑URI der Anwendung zurückgeleitet, die den Authorization Code entgegennimmt.
- Das Verfahren tauscht den Authorization Code gemeinsam mit dem Client‑Secret über den Backchannel gegen Identity‑, Access‑ und Refresh‑Tokens (JWT) beim USP‑IdP aus.
Benötigte Informationen
| OIDC-Endpunkte USP IdP | https://sso.usp.gv.at/realms/usp-clients/.wellknown/ openid-configuration |
|---|---|
| Client-ID | Wird vom Verfahrenspartner oder vom USP vergeben. |
| Client-Secret | Wird vom USP ausgestellt. |
| Redirect-URIs | Werden vom Verfahrenspartner bereitgestellt. |
Logout über das O-Profil
Backchannel-Logout (Standard)
In der Regel wird die Abmeldung am USP als Backchannel-Logout durchgeführt. Der Ablauf ist stellt sich wie folgt dar:
- Das Verfahren ruft den Logout-Endpunkt des USP‑IdPs mit dem Identity Token und der gewünschten Post‑Logout Redirect‑URI auf.
- Der USP‑IdP beendet die Session der Benutzerin bzw. des Benutzers und sendet anschließend einen POST‑Request an den vom Verfahren bereitgestellten Backchannel‑Logout‑Endpunkt, der die Session‑ID und die User‑ID enthält.
- Nachdem der USP-IdP alle betroffenen Clients mit aktiver Session informiert hat, wird der Benutzer auf die Post‑Logout Redirect‑URI weitergeleitet.
Sowohl die Backchannel-Logout-URL als auch die Post-Logout-Redirect-URI sind vom Verfahrenspartner bekanntzugeben.
Achtung
Sofern auf Verfahrensseite eine IP-Whitelist konfiguriert ist, muss die NAT-IP-Adresse des BRZ dort eingetragen werden. Die entsprechende IP-Adresse wird auf Anfrage im Zuge des Anbindungsprozesses mitgeteilt.
Frontchannel-Logout (Fallback-Verfahren)
In Ausnahmefällen kann der Logout alternativ über den Frontchannel erfolgen. Der Ablauf stellt sich wie folgt dar:
- Das Verfahren ruft den Logout-Endpunkt des USP‑IdPs erneut mit dem Identity Token und der gewünschten Post‑Logout Redirect‑URI auf.
- Der USP‑IdP zeigt eine interne Seite an, die die Frontchannel‑Logout‑Seite des Verfahrens als iFrame einbindet.
- Nachdem der USP-IdP alle betroffenen Clients mit aktiver Session informiert hat, wird die Benutzerin bzw. der Benutzer auf die Post‑Logout Redirect‑URI weitergeleitet.
Attribute im O-Profil
Alle Attribute werden als Claims in JSON Web Tokens (JWT) an Ihr Verfahren übermittelt.
| Friendly Name | Claim | Beispielwert |
|---|---|---|
| PVP-VERSION | urn:pvpgvat:oidc.pvp_version | 2.3 |
| PARTICIPANT-ID | urn:pvpgvat:oidc.participant_id | AT:B:115-USP |
| EID-CITIZEN-QAA-EIDAS-LEVEL | urn:pvpgvat:oidc.eid_citizen_qaa_eidas_level | http://eidas.europa.eu/LoA/high |
| EID-SIGNER-CERTIFICATE | urn:pvpgvat:oidc.eid_signer_certificate | MIIDXT…ZZKJEQxg== |
| EID-ISSUING-NATION | urn:pvpgvat:oidc.eid_issuing_nation | AT |
| SECCLASS | urn:pvpgvat:oidc.secclass | 2 |
| ROLES | urn:pvpgvat:oidc.roles | XYZ_Benutzer();XYZ_Admin() |
| ENC-BPK-LIST | urn:pvpgvat:oidc.enc_bpk_list | (bpkBereich1|bpkValue1);(bpkBereich2|bpkVal ue2)... |
| PRINCIPAL-NAME | family_name | XXXUSP1 Törőcsik |
| GIVEN-NAME | given_name | XXXUSP1 Ĥáčęk |
| BIRTHDATE | birthdate | 1972-02-13 |
| PERSON-COUNTRY-CODE | urn:uspgvat:country_code | Österreich |
| PERSON-ZIP | postal_code | 1030 |
| PERSON-CITY | locality | Wien |
| PERSON-STREET | street_address | Landstrasse |
| PERSON-HOUSE-NUMBER | urn:uspgvat:house_number | 1A-2B |
| USERID | urn:pvpgvat:oidc.userid | 507639@usp.gv.at |
| GID | urn:pvpgvat:oidc.gid | 507639@usp.gv.at |
| urn:uspgvat:mail | mustermann@example.com | |
| OU | urn:pvpgvat:oidc.ou | USP-Betrieb Testunternehmen |
| OU-GV-OU-ID | urn:pvpgvat:oidc.ou_gv_ou_id | R057I054T |
| ENTERPRISE-KEYS | urn:uspgvat:enterprise_keys | RF#GESMBH;FB#123456m;EO#ATEOS9999 012663;SE#9110050065181 |
| ENTERPRISE-SUB-IDS | urn:uspgvat:enterprise_sub_ids | {\"SID\":[\"1234567064\"],\"KWT\":[\"99037703\ "]} |
| ENTERPRISE-COUNTRY-CODE | urn:uspgvat:enterprise_country_code | AT |
| ENTERPRISE-ZIP | urn:uspgvat:enterprise_postal_code | 1020 |
| ENTERPRISE-CITY | urn:uspgvat:enterprise_locality | Testgemeinde |
| ENTERPRISE-STREET | urn:uspgvat:enterprise_street_address | Testgasse |
| ENTERPRISE-HOUSE-NUMBER | urn:uspgvat:enterprise_house_number | 2A-2B |
| ENTERPRISE-ECONOMIC-ACTIVITY-TYPE | urn:uspgvat:enterprise_economic_activity_type | H |
| ENTERPRISE-ECONOMIC-ACTIVITY-CODE | urn:uspgvat:enterprise_economic_activity_code | 62030 |
| ENTERPRISE-ECONOMIC-ACTIVITY-YEAR | urn:uspgvat:enterprise_economic_activity_year | 2025 |