====== Custom Login Flow & Context Check Interceptor ======
Dieser Artikel ist ein Community-Beitrag für Shibboleth IdP 3.x. Es ist unklar, ob er für Shibboleth IdP 4.x so noch gilt.
**Was ist das:**\\
Unter den Begriffen versteht man Modelle, mit deren Hilfe man das Nutzererfahren beim Login an individuelle Vorgaben anpassen kann.\\
Dabei kann der Ablauf durch beliebige Schritte und Prüfungen erweitert werden.\\
Analog ist dies z.B. mit den Terms-Of-Use oder dem Attribute-Release gleichzusetzen.\\
Der Gestaltung sind hierbei keine Grenzen gesetzt, da man auf alle Informationen zugreifen kann, die innerhalb des normalen Login-Vorgangs vorhanden sind.
**Beispiele für Anwendungsszenarien:**\\
* Ausschluss von Funktionsaccounts, so dass sich diese NICHT an Diensten der DFN-AAI anmelden können
* Zugriffssteuerung für bestimmte Serviceprovider, die keine ausreichenden Authorisierungsmechanismen bieten oder die die dafür nötigen Attribute erst garnicht erhalten sollen
* Ausschluss von bestimmten Nutzergruppen von bestimmten Diensten (SPs)
* Generelle Definition von Abbruchbedigungen für den Loginvorgang
In das Installationsverzeichnis wechseln.\\
Neue Config-File samt Conditions anlegen wie im Abschnitt [[de:shibidp:config-activation-condition|Activation Conditions]] beschrieben.
https://www.aai.dfn.de
https://your.sp.de/shibboleth
Den Standard Check-Interceptor kopieren und an die eingenen Bedürfnisse anpassen.
# mkdir -p flows/intercept/functional-user-check
# cp system/flows/intercept/context-check-flow.xml flows/intercept/functional-user-check/functional-user-check-flow.xml
# cp system/flows/intercept/context-check-beans.xml flows/intercept/functional-user-check/functional-user-check-beans.xml
Neuen Interceptor-Flow definieren.
Datei mit den nötigen Conditions verlinken.
Interceptor-Flow bekannt machen.
Abbruch-Event überschreiben, falls eigene Fehlermeldungen ausgegeben werden möchten.
then="proceed" else="FunctionalUserCheckDenied" />
Abbruch-Event definieren und mit gewünschten Error-Messages verlinken.
Event als lokales Event definieren, so dass der Login-Vorgang abgebrochen wird und der Nutzer am IdP verweilt, statt eine Antwort an den SP zu senden.
Zu verwendende Fehlermeldungen definieren.
FunctionalUserCheckDenied = functional
functional.title = Zugang verweigert
functional.message = Funktionsaccounts sind für diesen Dienst nicht zul\u00E4ssig.
Neuen Interceptor-Flow für die gewünschten Relying-Parties aktivieren.
**Links / Dokumentation:**\\
* https://wiki.shibboleth.net/confluence/display/IDP30/Authentication
* https://wiki.shibboleth.net/confluence/display/IDP30/ProfileInterceptConfiguration
* https://wiki.shibboleth.net/confluence/display/IDP30/ContextCheckInterceptConfiguration
* https://wiki.shibboleth.net/confluence/display/IDP30/RegistrationAuthorityConfiguration
* https://wiki.shibboleth.net/confluence/display/IDP30/InEntityGroupConfiguration
* https://wiki.shibboleth.net/confluence/display/IDP30/ErrorHandlingConfiguration
{{tag>archiv}}