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 [2026/01/29 21:04] – [Versionen für den Shibboleth Identity Provider in der v5] hofmann@fu-berlin.dede:shibidp:plugin-fudiscr [2026/03/04 13:41] (aktuell) hofmann@fu-berlin.de
Zeile 32: Zeile 32:
 ===== Versionen für den Shibboleth Identity Provider in der v5 ===== ===== Versionen für den Shibboleth Identity Provider in der v5 =====
 ^ 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 < 5.1.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          | nicht mehr verwenden        | +| 2.1.0          | min. 5.1.0 < 5.1.4     | min. 2.0.0     | min. 3.9.2          | nicht mehr verwenden        | 
-| 2.1.1          | min. 5.1.0             | min. 2.0.0     | min. 3.9.2          | nicht mehr verwenden        | +| 2.1.1          | min. 5.1.0 < 5.1.4     | min. 2.0.0     | min. 3.9.2          | nicht mehr verwenden        | 
-| 2.2.0          | min. 5.1.4             | min. 2.2.0     | min. 3.9.2          | nicht mehr verwenden        | +| 2.2.0          | min. 5.1.4 < 5.2.0     | min. 2.2.0     | min. 3.9.2          | nicht mehr verwenden        | 
-| **2.2.1**      | **min. 5.1.4**         | **min. 2.2.0** | **min. 3.9.2**      | **aktuell**                 | +| **2.2.1**      | **min. 5.1.4 < 5.2.0** | **min. 2.2.0** | **min. 3.9.2**      | **aktuell**                 | 
-| 2.3.0          | min. 5.2.0             | min. 2.2.0     | min. 3.9.2          ! 1. Terstversion !         |+**2.3.0**      **min. 5.2.0 < 6.0.0** **min. 2.2.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 964: Zeile 964:
 </file> </file>
 \\ \\
 +
 +
 +===== MFA-Reminder =====
 +Mit der fudiscr-Plugin-Version 2.2.0 wurde ein neuer Flow eingeführt, der Nutzer*innen nach der Authentifizierung daran erinnern soll, sich einen weiteren Faktor oder ein weiteren Token einzurichten. Dabei gibt es zwei Stufen an Hinweisen.
 +
 +In der ersten Stufe erhalten die Nutzer*innen eine Hinweisseite mit Informationen und sie können dann weiter klicken, um den Authentifizierungsvorgang fortzusetzen. Die Hinweiseite kann angepasst werden und ist unter ''%{idp.home}/views/fudismfareminder/remind-mfa-setup.vm'' verfügbar. Mit dem Predicate ''fudismfareminder.RemindMfaSetupPredicate'' in der ''%{idp.home}/conf/authn/fudiscr.xml'' wird gesteuert, unter welchen Bedingungen diese Erinnerungsseite erscheint. Ist die Bean ''fudismfareminder.RemindMfaSetupPredicate'' in der ''%{idp.home}/conf/authn/fudiscr.xml'' nicht vorhanden oder auskommentiert, so wird diese Erinnerungsseite nicht angesprochen.
 +
 +In der zweite Stufe, die in der ''%{idp.home}/conf/authn/fudiscr.xml'' mit dem Predicate ''fudismfareminder.EnforceMfaSetupPredicate'' gesteuert wird, erhalten die Nutzer*innen eine Seite mit Hinweisen und können den Authentifizierungsvorgang nicht mehr fortsetzen. Die Idee dabei ist, dass auf dieser Erzwungenseite ein Link zu einem Service Provider aufgeführt ist, über den die weiteren Faktoren eingerichtet werden können. Dieser Service Provider ist dann bei den Predicates ''fudismfareminder.RemindMfaSetupPredicate'' und ''fudismfareminder.EnforceMfaSetupPredicate'' immer ausgenommen. Die Erzwungenseite kann unter ''%{idp.home}/views/fudismfareminder/enforce-mfa-setup.vm'' angepasst werden. Wie in der ersten Stufe gilt. Wenn die Bean ''fudismfareminder.EnforceMfaSetupPredicate'' in der ''%{idp.home}/conf/authn/fudiscr.xml'' nicht vorhanden oder auskommentiert ist, so wird die Erzwungenseite nicht angesprochen.
 +
 +Aktiviert wird dieser Flow in der ''%{idp.home}/conf/relying-party.xml'' als ''PostAuthenticationFlow'' mit der id ''fudismfareminder'' (genauer ''intercept/fudismfareminder'' wie folgt:
 +
 +
 +<file xml>
 +<bean parent="SAML2.SSO" p:postAuthenticationFlows="#{{'fudismfareminder'}}"
 +</file>
 +
 +In der ''%{idp.home}/conf/authn/fudiscr.xml'' werden für die Predicat folgende Beispiele aufgeführt:
 +
 +<file xml>
 +<bean id="fudismfareminder.RemindMfaSetupPredicate" parent="shibboleth.Conditions.AND">
 +    <constructor-arg>
 +        <list>
 +            <bean parent="shibboleth.Conditions.NOT">
 +                <constructor-arg>
 +                    <bean parent="shibboleth.Conditions.OR">
 +                        <constructor-arg>
 +                            <list>
 +                                <bean parent="shibboleth.Conditions.RelyingPartyId" c:candidate="https://sp.example.com/shibboleth" />
 +                            </list>
 +                        </constructor-arg>
 +                    </bean>
 +                </constructor-arg>
 +            </bean>
 +            <bean parent="shibboleth.Conditions.NOT">
 +                <constructor-arg>
 +                    <bean parent="shibboleth.Conditions.OR">
 +                        <constructor-arg>
 +                            <list>
 +                                <bean parent="fudiscr.Functions.ActiveAuthenticationResultExistsPredicate" c:flowId="authn/fudiscr"/>
 +                                <bean parent="fudiscr.Functions.ActiveAuthenticationResultExistsPredicate" c:flowId="authn/fudispasskeys"/>
 +                            </list>
 +                        </constructor-arg>
 +                    </bean>
 +                </constructor-arg>
 +            </bean>
 +        </list>
 +    </constructor-arg>
 +</bean>
 +</file>
 +
 +Die Seite ''%{idp.home}/views/fudismfareminder/remind-mfa-setup.vm'' wird für alle Service Provider außer dem Service Provider mit der entityID ''<nowiki>https://sp.example.com/shibboleth</nowiki>'' angezeigt. Außerdem wird die Seite angezeigt, wenn die Authentifizierungsverfahren ''fudiscr'' oder ''fudispasskeys'' nicht verwendet wurden, also, wenn kein zweiter/weiterer Faktor über das fudiscr-Plugin verwendet wurde.
 +
 +<file xml>
 +<bean id="fudismfareminder.EnforceMfaSetupPredicate" parent="shibboleth.Conditions.AND">
 +    <constructor-arg>
 +        <list>
 +            <bean parent="shibboleth.Conditions.NOT">
 +                <constructor-arg>
 +                    <bean parent="shibboleth.Conditions.OR">
 +                        <constructor-arg>
 +                            <list>
 +                                <bean parent="shibboleth.Conditions.RelyingPartyId" c:candidate="https://sp.example.com/shibboleth" />
 +                            </list>
 +                        </constructor-arg>
 +                    </bean>
 +                </constructor-arg>
 +            </bean>
 +            <bean parent="shibboleth.Conditions.NOT">
 +                <constructor-arg>
 +                    <bean parent="shibboleth.Conditions.OR">
 +                        <constructor-arg>
 +                            <list>
 +                                <bean parent="fudiscr.Functions.ActiveAuthenticationResultExistsPredicate" c:flowId="authn/fudiscr"/>
 +                                <bean parent="fudiscr.Functions.ActiveAuthenticationResultExistsPredicate" c:flowId="authn/fudispasskeys"/>
 +                            </list>
 +                        </constructor-arg>
 +                    </bean>
 +                </constructor-arg>
 +            </bean>
 +            <bean parent="fudiscr.Functions.UnfilteredAttributeDisplayValueExistsPredicate" c:attributeName="eduPersonEntitlement" c:attributeValue="uri:enforce:mfa"/>
 +            <!-- alternative variant for attribute evaluation -->
 +            <!--bean parent="fudiscr.Functions.UnfilteredAttributeDisplayValueRegexPredicate" c:attributeName="eduPersonEntitlement" c:regex="uri:enforce:.*"/-->
 +        </list>
 +    </constructor-arg>
 +</bean>
 +</file>
 +    
 +Für das Anzeigen der Erzwungenseite gelten zunächst die gleichen Regeln wie bei der Erinnerungsseite. Zusätzlich wird aber geprüft, ob in dem ungefiltertem Attribut ''eduPersonEntitlement'' der Wert ''uri:enforce:mfa'' gesetzt ist. Über ein Attribut kann also z.B. gesteuert werden, wer sich in jedem Fall einen zweiten Faktor einrichten muss. So können Nutzer*innen-Gruppen nach und nach auf die Multifaktor-Authentifizierung umgestellt werden.   
 +\\
 +
  
 ===== Erweiterung für Fortinet (FortiAuthenticator) ==== ===== Erweiterung für Fortinet (FortiAuthenticator) ====
Zeile 970: Zeile 1060:
 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. 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 =====
  • Zuletzt geändert: vor 6 Wochen