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/08/31 08:37] – [Unterstütze Tokenverfahren aus privacyIDEA] hofmann@fu-berlin.de | de:shibidp:plugin-fudiscr [2024/03/05 13:38] (aktuell) – jhoffman@fu-berlin.de | ||
---|---|---|---|
Zeile 14: | Zeile 14: | ||
Eine externe Implementierung für Fortinet existiert auch bereits. | Eine externe Implementierung für Fortinet existiert auch bereits. | ||
- | Die bisherigen | + | Die primären |
Er ist Mitarbeiter des Rechenzentrums [[https:// | Er ist Mitarbeiter des Rechenzentrums [[https:// | ||
- | Die zukünftige | + | |
- | Sollte dies durch die Hochschule | + | Mit der Version 1.4.0 erfolgt eine Zusammenarbeit im Bereich FIDO2/ |
===== Versionen ===== | ===== Versionen ===== | ||
- | ^ Plugin-Version ^ IdP-Version | + | ^ Plugin-Version ^ IdP-Version |
- | | 1.0.0 | min. 4.1.2 | min. 3.7 | nicht mehr verwenden | + | | 1.0.0 | min. 4.1.2 und < 4.3.0 | min. 3.7 | nicht mehr verwenden |
- | | 1.1.0 | min. 4.1.2 | min. 3.7 | nicht mehr verwenden | + | | 1.1.0 | min. 4.1.2 und < 4.3.0 | min. 3.7 | nicht mehr verwenden |
- | | 1.1.1 | min. 4.1.2 | min. 3.7 | nicht mehr verwenden | + | | 1.1.1 | min. 4.1.2 und < 4.3.0 | min. 3.7 | nicht mehr verwenden |
- | | 1.2.0 | min. 4.1.2 | min. 3.7 | aktuell | + | | 1.2.0 | min. 4.1.2 und < 4.3.0 | min. 3.7 | aktuell |
- | | 1.3.0 | min. 4.3.0 | min. 3.7 | für Tests freigegeben | | + | | 1.3.0 | min. 4.3.0 und < 5.0.0 | min. 3.7 |
- | + | | 1.4.0 | min. 4.3.0 und < 5.0.0 | min. 3.8.1 | |
+ | | 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 ===== | ||
Aktuell werden die folgenden Tokenverfahren aus privacyIDEA ([[https:// | Aktuell werden die folgenden Tokenverfahren aus privacyIDEA ([[https:// | ||
- | ^ Tokenverfahren | + | ^ Tokenverfahren |
- | | Email | mail | + | | Email | mail | 1.0.0 | | |
- | | HOTP Token | hotp | + | | HOTP Token | hotp | 1.0.0 | | |
- | | Indexed Secret Token | indexed_secret | + | | Indexed Secret Token | indexed_secret |
- | | mOTP Token | motp | + | | mOTP Token | motp | 1.0.0 | | |
- | | Paper Token (PPR) | indexed_tan | + | | Paper Token (PPR) | indexed_tan |
- | | Questionnaire Token | question | + | | Questionnaire Token | question |
- | | Registration | + | | Registration |
- | | SMS Token | sms | 1.0.0 | | | + | | Remote |
- | | TAN Token | tan | 1.0.0 | | | + | | SMS Token | sms |
- | | TOTP | totp | + | | TAN Token | tan |
- | | WebAuthn | + | | TOTP | totp | 1.0.0 | | |
- | | Yubico | + | | WebAuthn |
- | | Yubikey | + | | Yubico |
+ | | Yubikey | ||
===== Installation und Konfiguration ===== | ===== Installation und Konfiguration ===== | ||
Zeile 96: | Zeile 97: | ||
Hierfür wird eine neue Datei // | Hierfür wird eine neue Datei // | ||
- | <code> | + | <file python idp-admin-policy> |
- | { | + | { ' |
- | ' | + | |
- | ' | + | ' |
- | ' | + | ' |
- | ' | + | ' |
- | ' | + | ' |
+ | ' | ||
+ | } | ||
+ | ] | ||
} | } | ||
- | </code> | + | </file> |
Die Policy kann unter Nutzung dieser Datei erstellt werden: | Die Policy kann unter Nutzung dieser Datei erstellt werden: | ||
Zeile 115: | Zeile 119: | ||
Hierfür wird eine neue Datei // | Hierfür wird eine neue Datei // | ||
- | <code> | + | <file python idp-application-tokentype> |
- | { | + | { ' |
- | ' | + | |
- | ' | + | ' |
- | }, | + | ' |
- | ' | + | }, |
- | ' | + | ' |
- | ' | + | ' |
+ | ' | ||
+ | } | ||
+ | ] | ||
} | } | ||
- | </code> | + | </file> |
Die Policy kann unter Nutzung dieser Datei erstellt werden: | Die Policy kann unter Nutzung dieser Datei erstellt werden: | ||
Zeile 135: | Zeile 142: | ||
Hierfür wird eine neue Datei // | Hierfür wird eine neue Datei // | ||
- | <code> | + | <file python idp-webauthn-allowed-transports> |
- | { | + | { ' |
- | ' | + | |
- | ' | + | ' |
- | ' | + | ' |
- | ' | + | ' |
- | }, | + | ' |
- | ' | + | }, |
- | ' | + | ' |
- | ], | + | ' |
- | ' | + | ], |
- | ' | + | ' |
- | ' | + | ' |
- | ' | + | ' |
- | ' | + | ' |
- | }, | + | ' |
- | ' | + | }, |
+ | ' | ||
+ | } | ||
+ | ] | ||
} | } | ||
- | </code> | + | </file> |
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 165: | Zeile 175: | ||
Damit möglichst viele WebAuthn-Token funktionieren und auch Passkey via QR-Code im Browser funktioniert, | Damit möglichst viele WebAuthn-Token funktionieren und auch Passkey via QR-Code im Browser funktioniert, | ||
- | <code> | + | <file python webauthn-enrollment> |
- | { | + | { ' |
- | ' | + | |
- | ' | + | ' |
- | ' | + | ' |
- | ' | + | ' |
- | | + | }, |
- | ' | + | ' |
- | ' | + | ' |
- | ' | + | ' |
+ | } | ||
+ | ] | ||
} | } | ||
- | </code> | + | </file> |
Die Policy kann unter Nutzung der Datei (// | Die Policy kann unter Nutzung der Datei (// | ||
Zeile 216: | Zeile 228: | ||
</ | </ | ||
\\ | \\ | ||
- | === Installation der Testversion 1.3.0 === | + | === Installation der Testversion 1.4.0 === |
Mit dem folgenden Aufruf kann die aktuelle Testversion des Plugins installiert und aktiviert werden: | Mit dem folgenden Aufruf kann die aktuelle Testversion des Plugins installiert und aktiviert werden: | ||
< | < | ||
Zeile 224: | Zeile 236: | ||
Für ein Update auf die aktuelle Testversion ist folgender Aufruf zu verwenden: | Für ein Update auf die aktuelle Testversion ist folgender Aufruf zu verwenden: | ||
< | < | ||
- | %{idp.home}/ | + | %{idp.home}/ |
</ | </ | ||
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 '' | ||
<file xml> | <file xml> | ||
- | <logger name=" | + | <logger name=" |
</ | </ | ||
Zeile 741: | Zeile 834: | ||
idp.c14n.fudiscr.trim=true | idp.c14n.fudiscr.trim=true | ||
</ | </ | ||
+ | ===== FIDO2 Userless ===== | ||
+ | Mit der aktuellen Testversion 1.4.0 wurde in Zusammenarbeit mit der Hochschule München ein neues Authentifizierungsverfahren eingeführt. Weitere Details folgen in Kürze. | ||
+ | |||
===== Weitere Materialien ===== | ===== Weitere Materialien ===== | ||
* Flow: [[https:// | * Flow: [[https:// |