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
user:hofmann_fu-berlin.de [2023/08/30 23:35] hofmann@fu-berlin.deuser:hofmann_fu-berlin.de [2024/05/23 11:33] (aktuell) – [IdP-Authn-Plugin fudiscr] hofmann@fu-berlin.de
Zeile 1: Zeile 1:
-====== IdP-Authn-Plugin fudiscr ab Version 1.3.0 ====== +====== IdP-Authn-Plugin fudiscr ====== 
 +[[user:hofmann_fu-berlin.de:zusatz|zusatz]]
 ===== Allgemein ===== ===== Allgemein =====
 Das Plugin kann als weiterer Faktor für die Multi-Faktor-Authentifizierung (MFA) vom [[https://shibboleth.atlassian.net/wiki/spaces/IDP4/overview|Shibboleth Identity Provider (IdP)]] verwendet werden. Das Plugin kann als weiterer Faktor für die Multi-Faktor-Authentifizierung (MFA) vom [[https://shibboleth.atlassian.net/wiki/spaces/IDP4/overview|Shibboleth Identity Provider (IdP)]] verwendet werden.
Zeile 14: Zeile 14:
 Eine externe Implementierung für Fortinet existiert auch bereits. Eine externe Implementierung für Fortinet existiert auch bereits.
  
-Die bisherigen Entwicklungsarbeiten wurden von Steffen Hofmann von der [[https://www.fu-berlin.de|Freien Universität Berlin]] durchgeführt.+Die primären Entwicklungsarbeiten wurden von Steffen Hofmann von der [[https://www.fu-berlin.de|Freien Universität Berlin]] durchgeführt.
 Er ist Mitarbeiter des Rechenzentrums [[https://www.zedat.fu-berlin.de|(FUB-IT Infrastruktur)]] 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 Infrastruktur)]] 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.
-Die zukünftige Pflege des Plugins erfolgt durch die [[https://www.fu-berlin.de|Freien Universität Berlin]]. 
-Sollte dies durch die Hochschule nicht mehr sichergestellt werden können, so stellen Partnerorganisationen und -unternehmen dies sicher. 
  
-===== Versionen ===== +Mit der Version 1.4.0 erfolgt eine Zusammenarbeit im Bereich FIDO2/WebAuthn mit der Hochschule MünchenDie Pflege des Plugins erfolgt mit dieser Version in Kooperation der [[https://www.fu-berlin.de|Freien Universität Berlin]] und der [[https://www.hm.edu|Hochschule München]].
-^ Plugin-Version ^ IdP-Version   ^ privacyIDEA-Version ^ Support-Level         ^ +
-1.0.0          | min. 4.1.2    | min. 3.7            | nicht mehr verwenden +
-| 1.1.0          | min4.1.2    min3.7            nicht mehr verwenden +
-| 1.1.1          | min. 4.1.2    | min. 3.7            | nicht mehr verwenden +
-| 1.2.0          | min. 4.1.2    | min. 3.7            | aktuell               |  +
-| 1.3.0          | min. 4.3.0    | min. 3.7            | für Tests freigegeben |+
  
 +===== Versionen =====
 +^ Plugin-Version ^ IdP-Version            ^ privacyIDEA-Version ^ Support-Level               ^
 +| 1.0.0          | min. 4.1.2 und < 4.3.0 | 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 und < 4.3.0 | min. 3.7            | nicht mehr verwenden        |
 +| 1.2.0          | min. 4.1.2 und < 4.3.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       |
  
  
 ===== Unterstütze Tokenverfahren aus privacyIDEA ===== ===== Unterstütze Tokenverfahren aus privacyIDEA =====
 Aktuell werden die folgenden Tokenverfahren aus privacyIDEA ([[https://privacyidea.readthedocs.io/en/latest/tokens/tokentypes.html|Token types in privacyIDEA]]) unterstützt: Aktuell werden die folgenden Tokenverfahren aus privacyIDEA ([[https://privacyidea.readthedocs.io/en/latest/tokens/tokentypes.html|Token types in privacyIDEA]]) unterstützt:
-^ Tokenverfahren       ^ Typbezeichnung im Plugin ^ min. Plugin-Version ^ Einschränkungen / Hinweise                               ^ +^ Tokenverfahren       ^ Typbezeichnung im Plugin    ^ min. Plugin-Version ^ Einschränkungen / Hinweise                               ^ 
-| Email                | mail                     | 1.0.0                |                                                          | +| Email                | mail                        | 1.0.0                |                                                          | 
-| HOTP Token           | hotp                     | 1.0.0                |                                                          | +| HOTP Token           | hotp                        | 1.0.0                |                                                          | 
-| Indexed Secret Token | indexed_secret           | 1.0.0                |                                                          | +| Indexed Secret Token | indexed_secret              | 1.0.0                |                                                          | 
-| mOTP Token           | motp                     | 1.0.0                |                                                          | +| mOTP Token           | motp                        | 1.0.0                |                                                          | 
-| Paper Token (PPR)    | indexed_tan              | 1.0.0                |                                                          | +| Paper Token (PPR)    | indexed_tan                 | 1.0.0                |                                                          | 
-| Questionnaire Token  | question                 | 1.0.0                | Es darf nur eine Antwort per Richtlinie verlangt werden. | +| Questionnaire Token  | question                    | 1.0.0                | Es darf nur eine Antwort per Richtlinie verlangt werden. | 
-| Registration         | registration_code        | 1.3.0                |                                                          | +| Registration         | registration_code           | 1.3.0                |                                                          
-| SMS Token            | sms                      | 1.0.0                |                                                          | +| Remote               | //referenzierter Tokentyp// | 1.3.0                | Nur referenzierte Token vom Typ //Email//, //HOTP Token//, //mOTP Token//, //Paper Token (PPR)//, //Registration//, //SMS Token//, //TAN Token, TOTP//, //Yubico// und //Yubikey// werden unterstützt. 
-| TAN Token            | tan                      | 1.0.0                |                                                          | +| SMS Token            | sms                         | 1.0.0                |                                                          | 
-| TOTP                 | totp                     | 1.0.0                |                                                          | +| TAN Token            | tan                         | 1.0.0                |                                                          | 
-| WebAuthn             | web_authn                | 1.2.0                | bei Version 1.2.0 nur mit Konfigurationsoption ''fudiscr.privacyidea.single_trigger_challenges=false'', aber Version 1.3.0 siehe [[user:hofmann_fu-berlin.de#zusaetzliche_richtlinie_ab_fudiscr-version_version_130|Richtlinie und Event ab Version 1.3.0]]                                        | +| TOTP                 | totp                        | 1.0.0                |                                                          | 
-| Yubico               | yubico_otp               | 1.3.0                |                                                          | +| WebAuthn             | web_authn                   | 1.2.0                | bei Version 1.2.0 nur mit Konfigurationsoption ''fudiscr.privacyidea.single_trigger_challenges=false'', ab Version 1.3.0 siehe [[user:hofmann_fu-berlin.de#zusaetzliche_richtlinie_ab_fudiscr-version_version_130|Richtlinie und Event ab Version 1.3.0]]                                        | 
-| Yubikey              | yubikey_aes              | 1.3.0                |                                                          |+| Yubico               | yubico_otp                  | 1.3.0                |                                                          | 
 +| Yubikey              | yubikey_aes                 | 1.3.0                |                                                          |
  
 ===== Installation und Konfiguration ===== ===== Installation und Konfiguration =====
Zeile 96: Zeile 97:
  
 Hierfür wird eine neue Datei //idp-admin-policy// erstellt, welche die Parameter der Policy als Python-Dictionary enthält. Der Inhalt sollte wie folgt aussehen: Hierfür wird eine neue Datei //idp-admin-policy// erstellt, welche die Parameter der Policy als Python-Dictionary enthält. Der Inhalt sollte wie folgt aussehen:
-<code>+<file python idp-admin-policy>
 { {
   'action': {'tokenlist':True, 'triggerchallenge':True},   'action': {'tokenlist':True, 'triggerchallenge':True},
Zeile 104: Zeile 105:
   'scope': 'admin'   'scope': 'admin'
 } }
-</code>+</file>
  
 Die Policy kann unter Nutzung dieser Datei erstellt werden: Die Policy kann unter Nutzung dieser Datei erstellt werden:
Zeile 115: Zeile 116:
  
 Hierfür wird eine neue Datei //idp-application-tokentype// erstellt, welche die Parameter der Policy als Python-Dictionary enthält. Der Inhalt sollte so aussehen: Hierfür wird eine neue Datei //idp-application-tokentype// erstellt, welche die Parameter der Policy als Python-Dictionary enthält. Der Inhalt sollte so aussehen:
-<code>+<file python idp-application-tokentype>
 { {
   'action': {   'action': {
Zeile 124: Zeile 125:
   'scope': 'authorization'   'scope': 'authorization'
 } }
-</code>+</file>
  
 Die Policy kann unter Nutzung dieser Datei erstellt werden: Die Policy kann unter Nutzung dieser Datei erstellt werden:
Zeile 135: Zeile 136:
  
 Hierfür wird eine neue Datei //idp-webauthn-allowed-transports// erstellt, welche die Parameter des Events als Python-Dictionary enthält. Der Inhalt sollte so aussehen: Hierfür wird eine neue Datei //idp-webauthn-allowed-transports// erstellt, welche die Parameter des Events als Python-Dictionary enthält. Der Inhalt sollte so aussehen:
-<code>+<file python validate_triggerchallenge>
 { {
   'action': 'set',   'action': 'set',
Zeile 153: Zeile 154:
   'position': 'pre'   'position': 'pre'
 } }
-</code>+</file>
  
 Das Event kann unter Nutzung dieser Datei erstellt werden: Das Event kann unter Nutzung dieser Datei erstellt werden:
Zeile 165: Zeile 166:
 Damit möglichst viele WebAuthn-Token funktionieren und auch Passkey via QR-Code im Browser funktioniert, wird folgende weitere Richtlinie (Datei //webauthn-enrollment//) empfohlen: Damit möglichst viele WebAuthn-Token funktionieren und auch Passkey via QR-Code im Browser funktioniert, wird folgende weitere Richtlinie (Datei //webauthn-enrollment//) empfohlen:
  
-<code>+<file python webauthn-enrollment>
 { {
   'action': {   'action': {
     'webauthn_authenticator_attestation_form': 'indirect',     'webauthn_authenticator_attestation_form': 'indirect',
-    'webauthn_authenticator_attestation_level': 'none'+    'webauthn_authenticator_attestation_level': 'none'
-    'webauthn_avoid_double_registration': True+
   },   },
   'active': True,   'active': True,
Zeile 176: Zeile 176:
   'scope': 'enrollment',   'scope': 'enrollment',
 } }
-</code>+</file>
  
 Die Policy kann unter Nutzung der Datei (//webauthn-enrollment//) erstellt werden: Die Policy kann unter Nutzung der Datei (//webauthn-enrollment//) erstellt werden:
Zeile 216: Zeile 216:
 </code> </code>
 \\ \\
-=== 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:
 <code> <code>
Zeile 224: Zeile 224:
 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:
 <code> <code>
-%{idp.home}/bin/plugin.sh -u de.zedat.fudis.shibboleth.idp.plugin.authn.fudiscr -fu 1.3.0+%{idp.home}/bin/plugin.sh -u de.zedat.fudis.shibboleth.idp.plugin.authn.fudiscr -fu 1.4.0
 </code> </code>
  
Zeile 681: Zeile 681:
 </beans> </beans>
 </file> </file>
 +
 +\\
 +
 +**Beispiel 5**: Wahlweise authn/Password und authn/SPNEGO als ersten Faktor -> [[de:aai:mfa_mit_passwd_spnego_first|hier]]. 
 +
 +\\
  
 === Reuse Condition === === Reuse Condition ===
Zeile 705: Zeile 711:
 Um detaillierte Logging-Informationen vom fudiscr-Plugin zu erhalten, kann die folgende Zeile in ''%{idp.home}/conf/logback.xml'' ergänzt werden: Um detaillierte Logging-Informationen vom fudiscr-Plugin zu erhalten, kann die folgende Zeile in ''%{idp.home}/conf/logback.xml'' ergänzt werden:
 <file xml> <file xml>
-<logger name="de.zedat.fudis" level="DEBUG/>+<logger name="de.zedat.fudis" level="DEBUG"/>
 </file> </file>
  
Zeile 741: Zeile 747:
 idp.c14n.fudiscr.trim=true idp.c14n.fudiscr.trim=true
 </file> </file>
 +===== 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://identity.fu-berlin.de/downloads/shibboleth/idp/plugins/authn/fudiscr/doc/ChallengeResponseFlow.pdf|ChallengeResponseFlow.pdf]]   * Flow: [[https://identity.fu-berlin.de/downloads/shibboleth/idp/plugins/authn/fudiscr/doc/ChallengeResponseFlow.pdf|ChallengeResponseFlow.pdf]]
  • Zuletzt geändert: vor 9 Monaten