Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
user:hofmann_fu-berlin.de:edumfa_setup [2024/10/08 10:18] – [Richtlinien für fudispasskeys] hofmann@fu-berlin.de | user:hofmann_fu-berlin.de:edumfa_setup [2024/10/08 10:30] (aktuell) – hofmann@fu-berlin.de |
---|
| |
==== Notwendige Richtlinien ==== | ==== Notwendige Richtlinien ==== |
Das fudiscr-Plugin benötigt für bestimmte Tokenverfahren wie WebAuthn und zur Reduzierung von API-Anfragen das Recht, für ''/validate/triggerchallenge'' auf Tokentypen einschränken zu können. | Das fudiscr-Plugin benötigt für bestimmte Token-Verfahren wie WebAuthn und zur Reduzierung von API-Anfragen das Recht, für ''/validate/triggerchallenge'' auf Token-Typen einschränken zu können. |
| |
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: |
edumfa-manage policy p_import -f idp-application-tokentype | edumfa-manage policy p_import -f idp-application-tokentype |
</code> | </code> |
| |
=== Richtlinien für fudispasskeys === | === Richtlinien für fudispasskeys === |
{ 'policy': [ { 'action': { 'webauthn_authenticator_attestation_form': 'none', | Für fudispasskeys werden zwei zusätzliche Richtlinien benötigt: |
'webauthn_authenticator_attestation_level': 'none', | |
'webauthn_public_key_credential_algorithms': 'ecdsa ' | |
'rsassa-pss ' | |
'rsassa-pkcs1v1_5', | |
'webauthn_relying_party_id': 'fu-berlin.de', | |
'webauthn_relying_party_name': 'FU Berlin', | |
'webauthn_user_verification_requirement': 'required'}, | |
'active': True, | |
'adminrealm': [], | |
'adminuser': [], | |
'check_all_resolvers': False, | |
'client': [], | |
'conditions': [], | |
'name': 'webauthn_enrollment', | |
'edumfanode': [], | |
'priority': 111, | |
'realm': [], | |
'resolver': [], | |
'scope': 'enrollment', | |
'time': '', | |
'user': []}]} | |
| |
| <file python webauthn-enrollment> |
| { 'policy': [ |
| { |
| 'action': { |
| 'webauthn_authenticator_attestation_form': 'none', |
| 'webauthn_authenticator_attestation_level': 'none', |
| 'webauthn_public_key_credential_algorithms': 'ecdsa ' |
| 'rsassa-pss ' |
| 'rsassa-pkcs1v1_5', |
| 'webauthn_relying_party_id': '<domain of your institution>', |
| 'webauthn_relying_party_name': '<name of your institution>', |
| 'webauthn_user_verification_requirement': 'required' |
| }, |
| 'active': True, |
| 'name': 'webauthn-enrollment', |
| 'scope': 'enrollment' |
| } |
| ] |
| } |
| </file> |
| Die Policy kann unter Nutzung dieser Datei erstellt werden: |
| <code> |
| edumfa-manage policy p_import -f webauthn-enrollment |
| </code> |
| ''webauthn_authenticator_attestation_form'', ''webauthn_authenticator_attestation_level'' und ''webauthn_public_key_credential_algorithms'' müssen nicht per Richtlinie gesetzt werden. Die hier vorgeschlagenen Werte erhöhen aber die Kompatibilität mit verschiedenen WebAuthn fähigen Geräten. |
| |
| <file python webauthn-authentication> |
| { 'policy': [ |
| { |
| 'action': { |
| 'webauthn_user_verification_requirement': 'required', |
| 'webauthn_usernameless_authn': True |
| }, |
| 'active': True, |
| 'name': 'webauthn-authentication', |
| 'scope': 'authentication' |
| } |
| ] |
| } |
| </file> |
| Die Policy kann unter Nutzung dieser Datei erstellt werden: |
| <code> |
| edumfa-manage policy p_import -f webauthn-authentication |
| </code> |
\\ | \\ |
| |
==== Notwendiges Event für WebAuthn ==== | ==== Notwendiges Event für WebAuthn ==== |
In Verbindung mit der zuvor genannten Policy //idp-application-tokentype// muss der Parameter ''webauthn_allowed_transports'' per Event gesetzt werden. | In Verbindung mit der zuvor genannten Policy //idp-application-tokentype// muss der Parameter ''webauthn_allowed_transports'' per Event gesetzt werden. |
|''fudiscr.edumfa.singleton''|''true''|Gibt an, ob der vom fudiscr-Plugin verwendete //EduMfaChallengeResponseClient// nur einmal instanziiert wird. In manchen Anwendungsfällen kann es die Performance verbessern, wenn mehrere Instanzen zugelassen werden.| | |''fudiscr.edumfa.singleton''|''true''|Gibt an, ob der vom fudiscr-Plugin verwendete //EduMfaChallengeResponseClient// nur einmal instanziiert wird. In manchen Anwendungsfällen kann es die Performance verbessern, wenn mehrere Instanzen zugelassen werden.| |
|''fudiscr.edumfa.user_agent_ip_address_parameter_name''|//leer//|Wird mit dieser Option ein Name angegeben, so wird bei jeder Anfrage gegen die eduMFA-API die IP-Adresse des Users als Parameter mit diesem Namen übergeben.| | |''fudiscr.edumfa.user_agent_ip_address_parameter_name''|//leer//|Wird mit dieser Option ein Name angegeben, so wird bei jeder Anfrage gegen die eduMFA-API die IP-Adresse des Users als Parameter mit diesem Namen übergeben.| |
|''fudiscr.edumfa.with_additional_pin_response''|''false''|In eduMFA ist es möglich, neben dem one time password/code noch eine PIN zu verlangen. Wenn dieser Konfigurationsparameter auf ''true'' gesetzt ist, dann ergänzt das fudiscr-Plugin auf der Eingabeseite für die Response ein PIN-Feld. Nur für die Tokentypen //hotp//, //indexed_tan//, //registration_code//, //tan//, //totp// und //yubikey_otp// wird diese Funktionalität unterstützt.| | |''fudiscr.edumfa.with_additional_pin_response''|''false''|In eduMFA ist es möglich, neben dem one time password/code noch eine PIN zu verlangen. Wenn dieser Konfigurationsparameter auf ''true'' gesetzt ist, dann ergänzt das fudiscr-Plugin auf der Eingabeseite für die Response ein PIN-Feld. Nur für die Token-Typen //hotp//, //indexed_tan//, //registration_code//, //tan//, //totp// und //yubikey_otp// wird diese Funktionalität unterstützt.| |
| |
**Hinweis**: In Abhängigkeit von der Konfigurationsweise des Shibboleth Identity Providers empfiehlt es sich, Token und Passwörter wie in ''fudiscr.edumfa.authorization_token'' und ''fudiscr.edumfa.service_password'' in geschützte/unversionierte Dateien wie ''%{idp.home}/credentials/secrets.properties'' auszulagern. | **Hinweis**: In Abhängigkeit von der Konfigurationsweise des Shibboleth Identity Providers empfiehlt es sich, Token und Passwörter wie in ''fudiscr.edumfa.authorization_token'' und ''fudiscr.edumfa.service_password'' in geschützte/unversionierte Dateien wie ''%{idp.home}/credentials/secrets.properties'' auszulagern. |