Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:shibidp:plugin-fudiscr [2024/10/08 11:45] – [Versionen für den Shibboleth Identity Provider in der v5] hofmann@fu-berlin.dede:shibidp:plugin-fudiscr [2024/10/08 12:35] (aktuell) – [Hinweis zu älteren IdP-Konfigurationen] abalke@fu-berlin.de
Zeile 17: Zeile 17:
 Er ist Mitarbeiter des Rechenzentrums [[https://www.zedat.fu-berlin.de|(FUB-IT)]] und zuständig für den Bereich Identity Management. Das Identity Management System der Freien Universität Berlin trägt den Namen FUDIS (FU Directory and Identity Service). Aus diesem Grund wird für das **C**hallenge-**R**esponse-Plugin in Konfigurationsparametern u.a. das Kürzel fudiscr verwendet. Er ist Mitarbeiter des Rechenzentrums [[https://www.zedat.fu-berlin.de|(FUB-IT)]] und zuständig für den Bereich Identity Management. Das Identity Management System der Freien Universität Berlin trägt den Namen FUDIS (FU Directory and Identity Service). Aus diesem Grund wird für das **C**hallenge-**R**esponse-Plugin in Konfigurationsparametern u.a. das Kürzel fudiscr verwendet.
  
-Mit den Versionen 1.4.0 und 2.0.0 erfolgt eine Zusammenarbeit im Bereich [[https://fidoalliance.org/passkeys/|Passkeys]] mit der [[https://www.hm.edu|Hochschule München]]. Das Plugin enthält ab diesen Versionen ein weiteres Authentifizierungsverfahren mit dem Namen fudispasskeys. Anstelle einer zweistufigen Authentifizierung aus z.B. Benutzernamen/Passwort und Token-Validierung mit fudiscr kann eine alleinige Authentifizierung mit [[https://fidoalliance.org/passkeys/|Passkeys]] durchgeführt werden. +Mit den Versionen 1.4.0/2.0.0 erfolgt eine Zusammenarbeit im Bereich [[https://fidoalliance.org/passkeys/|Passkeys]] mit der [[https://www.hm.edu|Hochschule München]]. Das Plugin enthält ab diesen Versionen ein weiteres Authentifizierungsverfahren mit dem Namen fudispasskeys. Anstelle einer zweistufigen Authentifizierung aus z.B. Benutzernamen/Passwort und Token-Validierung mit fudiscr kann eine alleinige Authentifizierung mit [[https://fidoalliance.org/passkeys/|Passkeys]] durchgeführt werden. 
  
  
Zeile 33: Zeile 33:
 ^ Plugin-Version ^ IdP-Version            ^ eduMFA-Version ^ privacyIDEA-Version ^ Support-Level               ^ ^ Plugin-Version ^ IdP-Version            ^ eduMFA-Version ^ privacyIDEA-Version ^ Support-Level               ^
 | 2.0.0          | min. 5.0.0             | min. 2.0.0     | min. 3.9.2          | nicht mehr verwenden        | | 2.0.0          | min. 5.0.0             | min. 2.0.0     | min. 3.9.2          | nicht mehr verwenden        |
-| 2.1.0          | min. 5.1.0             | min. 2.0.0     | min. 3.9.2          | aktuell                     |+**2.1.0**      **min. 5.1.0**         **min. 2.0.0** **min. 3.9.2**      **aktuell**                 |
 ===== Unterstütze Token-Verfahren aus eduMFA und privacyIDEA ===== ===== Unterstütze Token-Verfahren aus eduMFA und privacyIDEA =====
 Aktuell werden die folgenden Token-Verfahren aus eduMFA ([[https://edumfa.readthedocs.io/en/latest/tokens/tokentypes.html|Token types in eduMFA]]) und privacyIDEA ([[https://privacyidea.readthedocs.io/en/latest/tokens/tokentypes.html|Token types in privacyIDEA]]) unterstützt: Aktuell werden die folgenden Token-Verfahren aus eduMFA ([[https://edumfa.readthedocs.io/en/latest/tokens/tokentypes.html|Token types in eduMFA]]) und privacyIDEA ([[https://privacyidea.readthedocs.io/en/latest/tokens/tokentypes.html|Token types in privacyIDEA]]) unterstützt:
Zeile 56: Zeile 56:
  
 ==== eduMFA ==== ==== eduMFA ====
-siehe [[user:hofmann_fu-berlin.de:edumfa_setup|Installation und Konfiguration von eduMFA]]+siehe [[de:shibidp:plugin-fudiscr:edumfa_setup|Installation und Konfiguration von eduMFA]]
  
 ==== privacyIDEA ==== ==== privacyIDEA ====
-siehe [[user:hofmann_fu-berlin.de:privacyidea_setup|Installation und Konfiguration von privayIDEA]]+siehe [[de:shibidp:plugin-fudiscr:privacyidea_setup|Installation und Konfiguration von privayIDEA]]
  
 ===== Installation ===== ===== Installation =====
Zeile 276: Zeile 276:
  
 **Beispiel 4**: **Beispiel 4**:
-<alert type="warning">Nachfolgendes Beispiel funktioniert erst ab der fudiscr-Version 1.1.0. Für Versionen 1.1.0 bis <1.3.0 kann //fudiscr.UserHasAnyTokenPredicate// anstelle von //fudiscr.UserHasTokenPredicate// verwendet werden.</alert> 
 Nach der Authentifizierung mit Benutzername und Passwort erfolgt dann eine Token basierte Authentifizierung, wenn die AuthenticationContextClass, die der ServiceProvider benötigt, nicht ausreicht oder wenn der/die Benutzer*in bereits mindestens einen Token besitzt. Bei den Tokens wird der Zustand nicht geprüft. Ein gesperrter Token würde z.B. dafür sorgen, dass das ''fudiscr.UserHasTokenPredicate'' den Wert ''true'' zurückgibt. Dieses Predicate wurde insbesondere für Rollout-Szenarien eingeführt. Nach der Authentifizierung mit Benutzername und Passwort erfolgt dann eine Token basierte Authentifizierung, wenn die AuthenticationContextClass, die der ServiceProvider benötigt, nicht ausreicht oder wenn der/die Benutzer*in bereits mindestens einen Token besitzt. Bei den Tokens wird der Zustand nicht geprüft. Ein gesperrter Token würde z.B. dafür sorgen, dass das ''fudiscr.UserHasTokenPredicate'' den Wert ''true'' zurückgibt. Dieses Predicate wurde insbesondere für Rollout-Szenarien eingeführt.
 <file xml ./conf/authn/mfa-authn-config.xml> <file xml ./conf/authn/mfa-authn-config.xml>
Zeile 432: Zeile 431:
 Jedes Authentifizierungsverfahren im Shibboleth Identity Provider basiert auf einem abstrakten Flow mit einem AuthenticationFlowDescriptor, siehe hierzu [[https://shibboleth.atlassian.net/wiki/spaces/IDP5/pages/3199505085/AuthenticationConfiguration|AuthenticationConfiguration]]. Jedes Authentifizierungsverfahren im Shibboleth Identity Provider basiert auf einem abstrakten Flow mit einem AuthenticationFlowDescriptor, siehe hierzu [[https://shibboleth.atlassian.net/wiki/spaces/IDP5/pages/3199505085/AuthenticationConfiguration|AuthenticationConfiguration]].
  
-Die Eigenschaften des AuthenticationFlowDescriptor werden in der Regel für alle Flows in ''%{idp.home}/conf/authn/authn.properties''. Als Vorlage sind diese auskommentiert in ''%{idp.home}/conf/authn/fudiscr.properties'' enthalten, um sie nach der Plugin-Installation bereitszustellen:+Die Eigenschaften des AuthenticationFlowDescriptor werden in der Regel für alle Flows in ''%{idp.home}/conf/authn/authn.properties'' festgelegt. Als Vorlage sind diese auskommentiert in ''%{idp.home}/conf/authn/fudiscr.properties'' enthalten, um sie nach der Plugin-Installation bereitzustellen:
 <file properties> <file properties>
 #idp.authn.fudiscr.order=1000 #idp.authn.fudiscr.order=1000
Zeile 455: Zeile 454:
 #    saml2/urn:de:zedat:fudis:SAML:2.0:ac:classes:CR #    saml2/urn:de:zedat:fudis:SAML:2.0:ac:classes:CR
 </file> </file>
-''idp.authn.fudiscr.supportedPrincipals'' wurde bereits in der https://doku.tid.dfn.de/user:hofmann_fu-berlin.de#mfa-konfiguration vorgestellt.+''idp.authn.fudiscr.supportedPrincipals'' wurde bereits in der https://doku.tid.dfn.de/de:shibidp:plugin-fudiscr#mfa-konfiguration vorgestellt.
 \\ \\
  
Zeile 461: Zeile 460:
  
 ==== Hinweis zu älteren IdP-Konfigurationen ==== ==== Hinweis zu älteren IdP-Konfigurationen ====
-Wenn Sie eine IdP-Konfiguration von vor Version 4.1.0 weiterpflegen, achten Sie bitte darauf, dass die Datei ''%{idp.home}/conf/idp.properties'' zu Beginn die folgende Zeile enthält, damit automatisch alle ''.properties''-Dateien unterhalb des ''%{idp.home}/conf''-Ordners (wie z.B. ''%{idp.home}/conf/fudiscr.properties'') eingelesen werden.+Wenn Sie eine IdP-Konfiguration von vor Version 4.1.0 weiter pflegen, achten Sie bitte darauf, dass die Datei ''%{idp.home}/conf/idp.properties'' zu Beginn die folgende Zeile enthält, damit automatisch alle ''.properties''-Dateien unterhalb des ''%{idp.home}/conf''-Ordners (wie z.B. ''%{idp.home}/conf/fudiscr.properties'') eingelesen werden.
 <file properties> <file properties>
 idp.searchForProperties=true idp.searchForProperties=true
Zeile 494: Zeile 493:
 ^Option^Default-Wert^Beschreibung^ ^Option^Default-Wert^Beschreibung^
 |**''fudiscr.challengeResponseClient''**|''EduMfaChallengeResponseClient''|Diese Option legt fest, welches Token-Backend angesprochen werden soll. Seit Version 2.1.0 ist der Default-Wert ''EduMfaChallengeResponseClient'', zuvor ''PrivacyIdeaChallengeResponseClient''. Es gibt auch die Möglichkeit, einen ''PrivacyIdeaChallengeResponseClient'' zu verwenden, der ohne Backend funktioniert und sämtliche Informationen als DEBUG-Meldungen beim Starten des IdP in die Logfiles schreibt.| |**''fudiscr.challengeResponseClient''**|''EduMfaChallengeResponseClient''|Diese Option legt fest, welches Token-Backend angesprochen werden soll. Seit Version 2.1.0 ist der Default-Wert ''EduMfaChallengeResponseClient'', zuvor ''PrivacyIdeaChallengeResponseClient''. Es gibt auch die Möglichkeit, einen ''PrivacyIdeaChallengeResponseClient'' zu verwenden, der ohne Backend funktioniert und sämtliche Informationen als DEBUG-Meldungen beim Starten des IdP in die Logfiles schreibt.|
-|''fudiscr.default_users_realm''|//leer//|Sollte sich kein Realm aus dem Benutzernamen ergeben, so kann mit dieser Option ein Realm festegelegt werden, der bei Fehlen im fudiscr-Plugin ergänzt wird. In den meisten Fällen wird kein Realm benötigt, so dass per Default kein Realm ergänzt wird.+|''fudiscr.default_users_realm''|//leer//|Sollte sich kein Realm aus dem Benutzernamen ergeben, so kann mit dieser Option ein Realm festgelegt werden, der bei Fehlen im fudiscr-Plugin ergänzt wird. In den meisten Fällen wird kein Realm benötigt, so dass per Default kein Realm ergänzt wird.
 |''fudiscr.filter_tokens.id_exclude_regex''|//leer//|Mit dieser Option können Token anhand ihrer ID/Seriennummer für die Verwendung im fudiscr-Plugin ausgeschlossen werden. Z.B. werden mit //^HOTP.*$// alle HOTP-Token ignoriert, die als Softwaretoken in privacyIDEA angelegt wurden und eine Seriennummer beginnend mit HOTP erhalten. Per Default wird der Filter nicht verwendet. Die Regular Expression ist nicht definiert.| |''fudiscr.filter_tokens.id_exclude_regex''|//leer//|Mit dieser Option können Token anhand ihrer ID/Seriennummer für die Verwendung im fudiscr-Plugin ausgeschlossen werden. Z.B. werden mit //^HOTP.*$// alle HOTP-Token ignoriert, die als Softwaretoken in privacyIDEA angelegt wurden und eine Seriennummer beginnend mit HOTP erhalten. Per Default wird der Filter nicht verwendet. Die Regular Expression ist nicht definiert.|
 |''fudiscr.filter_tokens.type_exclude_regex''|//leer//|Mit dieser Option können Token-Typen für die Verwendung im fudiscr-Plugin ausgeschlossen werden. Z.B. werden mit //^totp$// alle TOTP-Token ignoriert. Per Default wird der Filter nicht verwendet. Die Regular Expression ist nicht definiert.| |''fudiscr.filter_tokens.type_exclude_regex''|//leer//|Mit dieser Option können Token-Typen für die Verwendung im fudiscr-Plugin ausgeschlossen werden. Z.B. werden mit //^totp$// alle TOTP-Token ignoriert. Per Default wird der Filter nicht verwendet. Die Regular Expression ist nicht definiert.|
Zeile 513: Zeile 512:
 ==== Konfigurationsoptionen für eduMFA/privacyIDEA ==== ==== Konfigurationsoptionen für eduMFA/privacyIDEA ====
 === eduMFA === === eduMFA ===
-siehe [[user:hofmann_fu-berlin.de:edumfa_setup|Installation und Konfiguration von eduMFA]]+siehe [[de:shibidp:plugin-fudiscr:edumfa_setup|Installation und Konfiguration von eduMFA]]
 === privacyIDEA === === privacyIDEA ===
-siehe [[user:hofmann_fu-berlin.de:privacyidea_setup|Installation und Konfiguration von privacyIDEA]]+siehe [[de:shibidp:plugin-fudiscr:privacyidea_setup|Installation und Konfiguration von privacyIDEA]]
 \\ \\
  
Zeile 601: Zeile 600:
       c:excludePattern="^clientwait$"/>       c:excludePattern="^clientwait$"/>
 </file> </file>
-In diesem Beispiel werden Token anhand einer Token-Eigenschaft herausgefiltert. In eduMFA und privacyIDEA können aktive Token existieren, die eine erste Validierung erfordern, bevor sie effektiv verwendet werden können. So soll z.B. erzwungen werden, dass Nutzer*innen bei der Einrichtung eines TOTP-Token den QR-Code mit dem Authenticator einscannen und diesen Vorgang mit einem OTP bestätigen. Die Token besitzen bis zur Bestätigung die Eigenschaft //rollout_state// mit den Werten //verify// oder //clientwait//. Die in dem Beispiel verwendeten zwei Predicates lassen sich auch mit einem Predicate und der Regular Expression //^(clientwait|verify)$// abbilden. Es soll in dem Bespiel nur die Listeneigenschaft von ''fudiscr.ExcludeTokenPredicates'' verdeutlicht werden.+In diesem Beispiel werden Token anhand einer Token-Eigenschaft herausgefiltert. In eduMFA und privacyIDEA können aktive Token existieren, die eine erste Validierung erfordern, bevor sie effektiv verwendet werden können. So soll z.B. erzwungen werden, dass Nutzer*innen bei der Einrichtung eines TOTP-Token den QR-Code mit dem Authenticator einscannen und diesen Vorgang mit einem OTP bestätigen. Die Token besitzen bis zur Bestätigung die Eigenschaft //rollout_state// mit den Werten //verify// oder //clientwait//. Die in dem Beispiel verwendeten zwei Predicates lassen sich auch mit einem Predicate und der Regular Expression //^(clientwait|verify)$// abbilden. Es soll in dem Beispiel nur die Listeneigenschaft von ''fudiscr.ExcludeTokenPredicates'' verdeutlicht werden.
  
 (Mit dem Konstruktor-Parameter ''c:negateResult="true"'' kann das Ergbnis eines //ExcludeTokenPredicates// negiert werden.) (Mit dem Konstruktor-Parameter ''c:negateResult="true"'' kann das Ergbnis eines //ExcludeTokenPredicates// negiert werden.)
Zeile 879: Zeile 878:
  
 === Policies in eduMFA === === Policies in eduMFA ===
-Gemäß [[https://doku.tid.dfn.de/user:hofmann_fu-berlin.de:edumfa_setup#richtlinien_fuer_fudispasskeys|eduMFA-Richtlinien für fudispasskeys]] müssen folgende authentication- und enrollment-Policies in eduMFA gesetzt sein:+Gemäß [[https://doku.tid.dfn.de/de:shibidp:plugin-fudiscr:edumfa_setup#richtlinien_fuer_fudispasskeys|eduMFA-Richtlinien für fudispasskeys]] müssen folgende authentication- und enrollment-Policies in eduMFA gesetzt sein:
  
 für den Scope authentication: für den Scope authentication:
Zeile 896: Zeile 895:
  
 ==== AuthenticationFlowDescriptor für fudispasskeys ==== ==== AuthenticationFlowDescriptor für fudispasskeys ====
-Analog zum [[https://doku.tid.dfn.de/user:hofmann_fu-berlin.de#authenticationflowdescriptor_fuer_fudiscr|AuthenticationFlowDescriptor für fudiscr]] existiert auch ein AuthenticationFlowDescriptor für fudispasskeys:+Analog zum [[https://doku.tid.dfn.de/de:shibidp:plugin-fudiscr#authenticationflowdescriptor_fuer_fudiscr|AuthenticationFlowDescriptor für fudiscr]] existiert auch ein AuthenticationFlowDescriptor für fudispasskeys:
  
 <file properties> <file properties>
Zeile 962: Zeile 961:
 \\ \\
  
 +===== Erweiterung für Fortinet (FortiAuthenticator) ====
 +Die Erweiterung für Fortinet unterstützt aktuell die Token-Typen //FortiToken (Mobile und Hardware)//, //SMS// und //E-Mail//. //FIDO2 (WebAuthn)// wird aktuell von der FortiAuthenticator API nicht unterstützt.
 +
 +Die Erweiterung steht unter der Apache 2.0 Lizenz und wird von der DAASI International GmbH [[https://gitlab.daasi.de/shibboleth-identity-provider/shibboleth-idp-plugin-authn-fudiscr-fortinetclient|hier]] bereitgestellt. DAASI bietet für die Erweiterung auch Softwarepflegeverträge an. Anfragen sind bitte an [[info@daasi.de|info@daasi.de]] zu senden.
 +\\
  
 ===== Weitere Materialien ===== ===== Weitere Materialien =====
Zeile 970: Zeile 974:
  
 ===== Quellcode ===== ===== Quellcode =====
-Hochschulen und andere öffentliche Einrichtungen erhalten auf Anfrage Zugriff auf den Quellcode. Bitte senden Sie hierfür eine E-Mail an [[fudis@zedat.fu-berlin.de|fudis@zedat.fu-berlin.de]]. Es wird daran gearbeitet, sämtliche Komponenten des fudiscr-Plugins unter der Apache 2.0 Lizenz zu veröffentlichen. Wir bitten (weiterhin) um Geduld.+Hochschulen und andere öffentliche Einrichtungen erhalten auf Anfrage Zugriff auf den Quellcode. Bitte senden Sie hierfür eine E-Mail an [[fudis@fu-berlin.de|fudis@fu-berlin.de]]. Es wird daran gearbeitet, sämtliche Komponenten des fudiscr-Plugins unter der Apache 2.0 Lizenz zu veröffentlichen. Wir bitten (weiterhin) um Geduld.
 ===== Kontakt ===== ===== Kontakt =====
-Fehler, Fragen, Anregungen etc. bitte per E-Mail an [[fudis@zedat.fu-berlin.de|fudis@zedat.fu-berlin.de]] senden.+Fehler, Fragen, Anregungen etc. bitte per E-Mail an [[fudis@fu-berlin.de|fudis@fu-berlin.de]] senden.
  • Zuletzt geändert: vor 6 Monaten