Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
de:shibidp:plugin-fudiscr [2023/09/13 16:00] – hofmann@fu-berlin.de | de:shibidp:plugin-fudiscr [2024/03/05 13:38] (aktuell) – jhoffman@fu-berlin.de | ||
---|---|---|---|
Zeile 27: | Zeile 27: | ||
| 1.3.0 | min. 4.3.0 und < 5.0.0 | min. 3.7 | aktuell | | 1.3.0 | min. 4.3.0 und < 5.0.0 | min. 3.7 | aktuell | ||
| 1.4.0 | min. 4.3.0 und < 5.0.0 | min. 3.8.1 | für Tests freigegeben | | 1.4.0 | min. 4.3.0 und < 5.0.0 | min. 3.8.1 | für Tests freigegeben | ||
+ | | 2.0.0 | min. 5.0.0 | min. 3.8.1 | für Tests freigegeben | ||
===== Unterstütze Tokenverfahren aus privacyIDEA ===== | ===== Unterstütze Tokenverfahren aus privacyIDEA ===== | ||
Zeile 43: | Zeile 43: | ||
| TAN Token | tan | 1.0.0 | | | | TAN Token | tan | 1.0.0 | | | ||
| TOTP | totp | 1.0.0 | | | | TOTP | totp | 1.0.0 | | | ||
- | | WebAuthn | + | | WebAuthn |
| Yubico | | Yubico | ||
| Yubikey | | Yubikey | ||
Zeile 98: | Zeile 98: | ||
Hierfür wird eine neue Datei // | Hierfür wird eine neue Datei // | ||
<file python idp-admin-policy> | <file python idp-admin-policy> | ||
- | { | + | { ' |
- | ' | + | |
- | ' | + | ' |
- | ' | + | ' |
- | ' | + | ' |
- | ' | + | ' |
+ | ' | ||
+ | } | ||
+ | ] | ||
} | } | ||
</ | </ | ||
Zeile 117: | Zeile 120: | ||
Hierfür wird eine neue Datei // | Hierfür wird eine neue Datei // | ||
<file python idp-application-tokentype> | <file python idp-application-tokentype> | ||
- | { | + | { ' |
- | ' | + | |
- | ' | + | ' |
- | }, | + | ' |
- | ' | + | }, |
- | ' | + | ' |
- | ' | + | ' |
+ | ' | ||
+ | } | ||
+ | ] | ||
} | } | ||
</ | </ | ||
Zeile 136: | Zeile 142: | ||
Hierfür wird eine neue Datei // | Hierfür wird eine neue Datei // | ||
- | <file python | + | <file python |
- | { | + | { ' |
- | ' | + | |
- | ' | + | ' |
- | ' | + | ' |
- | ' | + | ' |
- | }, | + | ' |
- | ' | + | }, |
- | ' | + | ' |
- | ], | + | ' |
- | ' | + | ], |
- | ' | + | ' |
- | ' | + | ' |
- | ' | + | ' |
- | ' | + | ' |
- | }, | + | ' |
- | ' | + | }, |
+ | ' | ||
+ | } | ||
+ | ] | ||
} | } | ||
</ | </ | ||
Zeile 158: | Zeile 167: | ||
Das Event kann unter Nutzung dieser Datei erstellt werden: | Das Event kann unter Nutzung dieser Datei erstellt werden: | ||
< | < | ||
- | pi-manage event e_import -f idp-webauthn-allowed-transports | + | pi-manage event e_import -f idp-webauthn-allowed-transports |
</ | </ | ||
Zeile 167: | Zeile 176: | ||
<file python webauthn-enrollment> | <file python webauthn-enrollment> | ||
- | { | + | { ' |
- | ' | + | |
- | ' | + | ' |
- | ' | + | ' |
- | }, | + | ' |
- | ' | + | }, |
- | ' | + | ' |
- | ' | + | ' |
+ | ' | ||
+ | } | ||
+ | ] | ||
} | } | ||
</ | </ | ||
Zeile 681: | Zeile 693: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | **Beispiel 5**: Wahlweise authn/ | ||
+ | |||
+ | \\ | ||
=== Reuse Condition === | === Reuse Condition === | ||
Zeile 702: | Zeile 720: | ||
<alert type=" | <alert type=" | ||
+ | <alert type=" | ||
+ | Bei der Verwendung von '' | ||
+ | <file xml> | ||
+ | <?xml version=" | ||
+ | <beans ...> | ||
+ | ... | ||
+ | < | ||
+ | Wird z.B. mit ' | ||
+ | so wird dieser beim ersten Service Provider auch abgefragt. | ||
+ | Wenn ' | ||
+ | Die Funktion ' | ||
+ | ' | ||
+ | --> | ||
+ | <bean id=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | nextFlow = " | ||
+ | |||
+ | authCtx = input.getSubcontext(" | ||
+ | mfaCtx = authCtx.getSubcontext(" | ||
+ | if (mfaCtx.isAcceptable()) { | ||
+ | nextFlow = null; | ||
+ | } | ||
+ | |||
+ | nextFlow; | ||
+ | ]]> | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | ... | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Nachfolgendes Beispiel erweitert das vorherige Beispiel und erzwingt den Aufruf vom zweiten Faktor mit fudiscr, wenn dieser per [[https:// | ||
+ | <file xml> | ||
+ | <?xml version=" | ||
+ | <beans ...> | ||
+ | ... | ||
+ | < | ||
+ | (Die nachfolgende erweiterte Logik kann auch anders dargestellt werden.) | ||
+ | Wenn ' | ||
+ | und die Reuse Condition ' | ||
+ | Mit ' | ||
+ | der einen zweiten Faktor verlangt, ein Token abgefragt. Mit ' | ||
+ | gibt es für Nutzende kein Unterschied im Verhalten des Login-Vorgangs zum vorherigen Beispiel. | ||
+ | --> | ||
+ | <bean id=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | nextFlow = " | ||
+ | |||
+ | authCtx = input.getSubcontext(" | ||
+ | mfaCtx = authCtx.getSubcontext(" | ||
+ | if (mfaCtx.isAcceptable()) { | ||
+ | AuthnContextClassRefPrincipal = Java.type(" | ||
+ | refPrincipal = new AuthnContextClassRefPrincipal(" | ||
+ | rpCtx = authCtx.getSubcontext(" | ||
+ | |||
+ | if (rpCtx == null || !rpCtx.getRequestedPrincipals().contains(refPrincipal)) { | ||
+ | nextFlow = null; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | nextFlow; | ||
+ | ]]> | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | ... | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | Wenn ' | ||
==== Logging ==== | ==== Logging ==== | ||
Um detaillierte Logging-Informationen vom fudiscr-Plugin zu erhalten, kann die folgende Zeile in '' | Um detaillierte Logging-Informationen vom fudiscr-Plugin zu erhalten, kann die folgende Zeile in '' |