Anbindung via SAML2 (PVP2 S-Profil)

Hinweis: SAML2 steht ausschließlich für Browser-basierte Anwendungen zur Verfügung. Für die Integration der E-ID Anmeldung in mobile Apps (App2App Authentifizierung) muss OIDC verwendet werden.

Der gesamte SAML2 Prozess ist gemäß dem Portalverbund PVP2 S-Profil umgesetzt.
Weitere Informationen: (PVP2 S-Profil Spezifikationen)

Die einzelnen Schritte einer SAML2 Authentifizierung gemäß dem PVP2 S-Profil sind wie folgt:

Um Benutzer zu authentifizieren, muss der SP einen SAML2 Authentifizierungsrequest erstellen, der an den Browser des Benutzers retourniert wird. Der Browser folgt dem Authentifizierungs-Redirect und sendet den SAML Request via HTTP POST Request an den Identity Provider (IdP) des E-ID Systems.

Beispiel für einen SAML2 Authentifizierungs-Request:

POST https://eid.egiz.gv.at/idp/profile/SAML2/POST/SSO HTTP/1.1
Host: eid.egiz.gv.at
User-Agent: Mozilla/5.0

Im Body des Post Requests werden die Parameter ‚RelayState‘ und ‚SAMLRequest‘ übermittelt

RelayState="3649891848513838080"&SAMLRequest= PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c2FtbDJwOkF1dGhuUmVxdWVzdCB4bWxuczpzYW1sMnA9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpwcm90b2NvbCIgQXNzZXJ0aW9uQ29uc3VtZXJTZXJ2aWNlSW5kZXg9IjAiIEF0dHJpYnV0ZUNvbnN1bWluZ1NlcnZpY2VJbmRleD0iMCIgRGVzdGluYXRpb249Imh0dHBzOi8vZWlkLmVnaXouZ3YuYXQvaWRwL3Byb2ZpbGUvU0FNTDIvUE9TVC9TU08iIElEPSJfZjA4OTVjMWJlMTYyNDA0NTQ2MDQ4YzNkNjZlOTZhMzQiIElzc3VlSW5zdGFudD0iMjAyMC0wMy0zMFQxMzozOTozNi42NDNaIiBWZXJzaW9uPSIyLjAiPjxzYW1sMjpJc3N1ZXIgeG1sbnM6c2FtbDI9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDphc3NlcnRpb24iIEZvcm1hdD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOm5hbWVpZC1mb3JtYXQ6ZW50aXR5Ij5odHRwczovL2VpZC5lZ2l6Lmd2LmF0L3NhbWwyX2RlbW8vPC9zYW1sMjpJc3N1ZXI

Der IdP üermittelt anschließend eine Auswahl der zur Verfügung stehenden Authentifizierungsmethoden (E-ID oder ggf. wenn vom SP konfiguriert auch EU Login, dh eIDAS) an den Web-Browser, wie in Abbildung 1 dargestellt.

Abbildung 1: Auswahl der Authentifizierungsvariante

Anschließend führt der Benutzer die entsprechende Authentifizierung im Browser durch. Nach erfolgter Benutzer-Authentifizierung erstellt der IdP die SAML2 Assertion und übermittelt diese verschlüsselt via einer Authentication Response an den Browser.
Beispiel für eine SAML2 Authentication Response:

HTTP/1.1 200 OK
RelayState: "962882794040060928"
SAMLResponse: "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNhbWwycDpSZXNwb25zZSBEZXN0aW5hdGlvbj0ia..."

Beispiel für eine unverschlüsselte SAML2 Assertion gemäß PVP2 S-Profil:


Abschließend sendet der Browser die erhaltene SAML Assertion in dem HTTP POST Parameter ‚SAMLResponse‘ via einem SAML2 Authorization Request an den Service Provider.

Beispiel für einen Authorization Request:

POST https://beispielService.at/saml2/ HTTP/1.1
Host: beispielService.at
User-Agent: Mozilla/5.0

Im Body des Post Requests werden die Parameter ‚RelayState‘ und ‚SAMLResponse‘ übermittelt

RelayState="962882794040060928"&SAMLResponse: "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNhbWwycDpSZXNwb25zZSBEZXN0aW5h..."

Unter folgendem Link steht eine detaillierte Darstellung des Prozessflusses für SAML2 Anmeldungen für Browser-basierte Anwendungen zur Verfügung:

Detaillierter Prozessfluss für SAML2 Anmeldungen in Web Browser Anwendungen