SAML 2.0 Integrationsmuster STS-PEP (Standard)


Das STS-PEP ist das Standardmuster und kann bei regulären Sicherheitsanforderungen verwendet werden und ist für Dienste innerhalb und außerhalb von BV-Net verfügbar, auch über das Internet.

SAML 2.0 Integration

Die nachstehende Abbildung zeigt vereinfacht den Ablauf und die involvierten Komponenten des Zugriffs eines noch nicht authentifizierten Benutzers auf eine Webapplikation. Die Applikation ist dabei nicht über die eIAM-Web Komponente geschützt. Die HTTP Requests verkehren direkt zwischen dem Browser des Benutzers und der Applikation, ohne über den eIAM-Web PEP zu gehen. eIAM wird lediglich für die Authentifizierung des Benutzers und als Provider für Berechtigungsrollen und Benutzerattribute verwendet. Die einzelnen Schritte sind im Folgenden beschrieben.
Übersicht Messages Authentifizierung für eine extern gehostete Applikation
Übersicht Messages Authentifizierung für eine extern gehostete Applikation


Nr.AktionBeschreibung
1Benutzerzugriff auf die externe WebapplikationDer Benutzer greift mittels Webbrowser auf die externe Applikation zu. Die externe Applikation prüft die Zugriffsberechtigung und stellt fest, dass eine vorgängige Autorisierung nötig ist.
2SAML AuthnRequest an Webbrowser des Benutzers Die externe Applikation stellt einen signierten SAML 2.0 AuthnRequest zuhanden des eIAM-Web PEP aus und schickt diesen als selbst übermittelndes Formular an den Webbrowser des Benutzers.
3SAML AuthnRequest an eIAM-Web PEP Der Browser des Benutzers schickt das Formular per Browser POST automatisch mittels Java Script an den eIAM-Web PEP.
4SAML AuthnRequest an Webbrowser des Benutzers Der eIAM-Web PEP prüft, ob bereits eine Session mit dem Benutzer existiert.
Existiert bereits eine Session auf dem eIAM-Web PEP mit dem Benutzer, so wird direkt mit Punkt 13 weitergefahren. Es wird eine SAML Response vom eIAM-Web PEP ausgestellt und über den Browser des Benutzers an die externe Applikation geschickt.
Existiert noch keine Session auf dem eIAM-Web PEP mit dem Benutzer, so stellt der eIAM-Web PEP einen signierten SAML 2.0 AuthnRequest zuhanden des eIAM Trustbroker aus und schickt diesen als selbst übermittelndes Formular an den Webbrowser des Benutzers.
5SAML AuthnRequest an den eIAM TrustbrokerDer Browser des Benutzers schickt das Formular per Browser POST automatisch mittels Java Script an den eIAM Trustbroker.
Home Realm Discovery (HRD) Der eIAM Trustbroker führt ein „Home Realm Discovery“ durch und sucht nach IdPs, welchen die externe Applikation vertraut. Diese Vertrauensverhältnisse wurden in der Integrationsphase der Applikation auf dem eIAM Trustbroker definiert.
Falls die externe Applikation mehreren IdP pro Zone (BV-Netz / Internet) vertraut, wird dem Benutzer eine Auswahl von IdP angezeigt und er kann einen davon auswählen.
Falls die externe Applikation nur einem IdP pro Zone (BV-Netz / Internet) vertraut, so findet keine Interaktion mit dem Benutzer statt.
6SAML AuthnRequest an IdP Der eIAM Trustbroker stellt einen signierten SAML 2.0 AuthnRequest zuhanden des IdP aus und schickt diesen als selbst übermittelndes Formular an den Webbrowser des Benutzers.
7SAML AuthnRequest an den IdP Der Browser des Benutzers schickt das Formular per Browser POST automatisch mittels Java Script an den IdP.
8Authentifizierung auf IdP Der Benutzer wird mittels eines, vom IdP unterstützten Authentifizierungsmittel authentifiziert.
Je nach Authentifizierungsmittel erfolgt die Authentifizierung mit Benutzerinteraktion (z.B. Passwort, SMS Code) oder ohne Benutzerinteraktion (z.B. Active Directory Kerberos).
9SAML Response an eIAM Trustbroker Der IdP stellt zuhanden des eIAM Trustbroker eine SAML 2.0 Response aus.
Die Response enthält eine signierte SAML Assertion mit Aussagen (Claims) über das Subjekt und Attribute des Subjekts.
Die SAML Response wird als selbst übermittelndes Formular an den Webbrowser des Benutzers geschickt.
10SAML Response an eIAM Trustbroker Attribut Abfrage im AP (eIAM-AM) Der Browser des Benutzers schickt das Formular per Browser POST automatisch mittels Java Script an den eIAM Trustbroker.
Der eIAM Trustbroker prüft die SAML Assertion des IdP auf deren Gültigkeit.
Der eIAM Trustbroker ermittelt die für das Access Management zur Laufzeit nötigen Attribute des Benutzers im eIAM-AM (Access Management Komponente von eIAM).
Der Benutzer wird vom eIAM Trustbroker erst über seine Identitätsreferenz die auf den IdP zeigt im eIAM-Supermandant gesucht. Damit wird der eIAM-Account des Benutzers ermittelt.
Der Benutzer wird anschliessend über seine Identitätsreferenz die auf den eIAM-Account im Supermandant zeigt in einem spezifischen oder in allen Access Mandanten gesucht (abhängig davon, ob es sich bei der aufgerufenen Anwendung um die Fachapplikation eines spezifischen Amtes oder um eine Mandantenfähige Plattform handelt).
Der eIAM Trustbroker aggregiert die Attribute aus dem IdP mit den Attributen aus der Abfrage im eIAM-AM.
11 Der eIAM Trustbroker stellt eine SAML 2.0 Response mit signierter Assertion zuhanden des eIAM-Web PEP aus und schickt diesen als selbst übermittelndes Formular an den Webbrowser des Benutzers.
12 SAML Response an eIAM-Web PEPDer Browser des Benutzers schickt das Formular per Browser POST automatisch mittels Java Script an den eIAM-Web PEP.
13 SAML Response an den eIAM-Web PEPDer eIAM-Web PEP stellt eine SAML 2.0 Response mit signierter Assertion zuhanden der externen Applikation aus und schickt diesen als selbst übermittelndes Formular an den Webbrowser des Benutzers.
14 SAML Response an die externe ApplikationDer Browser des Benutzers schickt das Formular per Browser POST automatisch mittels Java Script an die externe Applikation.
15 Authentifizierung und Autorisierung auf externer Applikation Die externe Applikation prüft die SAML 2.0 Assertion des eIAM-Web PEP auf deren Gültigkeit.
Prüft die Autorisierung des Benutzers auf die Ressource und erstellt im Erfolgsfall eine Session mit dem Benutzer, welche per Cookie verfolgt wird.
Redirektet den Webbrowser des Benutzers entweder auf eine vordefinierte URL in der externen Applikation oder auf die ursprünglich vom Benutzer (im Request 1) verlangte URL, welche im Relay State ersichtlich ist.