Du verkar ha rätt i att det inte behövs. Jag loggade in med MFA (gjorde
TOTP). Behövde sedan inte göra om detta när jag testade mot en annan
skyddad path (iofs på samma webb-server).
Trevlig helg!
/Mats
On 2024-10-11 10:39, Björn Wiberg wrote:
Hej Mats!
Kanon det! 😊
Vi har också lagt in lite logik "mellan" authn/MFA och authn/TOTP som
kollar ifall MFA-statusen kan/skall återanvändas eller inte, och
därmed kunna ge SSO trots MFA (ifall man inte "förbjudit" det för en
specifik tjänst vilket, jag har för mig att man kan göra i
relying-party.xml).
Denna logik har ofta getts namnet "checkSecondFactor" i en del exempel.
Jag är dock lite osäker på om det egentligen behövs längre, eller
ifall allt kan hanteras "internt" av MFA-flödet och TOTP-modulen
nuförtiden.
Enligt
https://shibboleth.atlassian.net/wiki/spaces/IDPPLUGINS/pages/1376878877/TO…
så är propertyn idp.authn.TOTP.reuseCondition satt till true som
standard, vilket väl borde innebära att TOTP återanvänds som standard.
Det finns också en motsvarande property idp.authn.MFA.reuseCondition
för authn/MFA som man kan vilja sätta till false om man inte vill att
"hela" MFA-flödet skall återanvändas:
https://shibboleth.atlassian.net/wiki/spaces/IDP5/pages/3199505534/MultiFac…
Anledningen till att begränsa detta skulle t.ex. kunna vara ifall man
har egen logik som väljer MFA-metod baserat på vilka MFA-metoder som
just då finns tillgängliga för användaren, och vill att valet skall
vara "up-to-date" vid varje inloggning i en MFA-skyddad tjänst.
Vi har inte det i dagsläget, men det kommer säkert att ändras i framtiden.
Trevlig helg!
Med vänliga hälsningar / Best regards
Björn Wiberg
Uppsala universitet / Uppsala University
Avdelningen för universitetsgemensam IT / University IT Services
Infrastruktur / Infrastructure
Tjänstedrift / Service Operations
*Från:* Mats Luspa via Saml-admins <saml-admins(a)lists.sunet.se>
*Skickat:* den 11 oktober 2024 10:13
*Till:* saml-admins(a)lists.sunet.se
*Ämne:* [Saml-admins] Re: MFA i shibboleth
Hej!
Tack, det gjorde susen. Det fungerar alltså.
Ja, vi kör också med *.properties-filerna. Men jag ville testa
general-authn.xml om det var detta som orsakade problemet.
/MVH Mats
On 2024-10-11 09:55, Björn Wiberg wrote:
Hej igen Mats!
Kan tillägga att vi inte har angett supportedPrincipals varken för
authn/MFAeller authn/TOTPi authn/general-authn.xml, utan endast
via propertiesidp.authn.TOTP.supportedPrincipals och
idp.authn.TOTP.supportedPrincipals i authn/authn.properties. Jag
har för mig att det är det "nya" sättet att göra dessa inställningar.
Med vänliga hälsningar / Best regards
Björn Wiberg
Uppsala universitet / Uppsala University
Avdelningen för universitetsgemensam IT / University IT Services
Infrastruktur / Infrastructure
Tjänstedrift / Service Operations
*Från:* Björn Wiberg <bjorn.wiberg(a)uu.se> <mailto:bjorn.wiberg@uu.se>
*Skickat:* den 11 oktober 2024 09:44
*Till:* 'Mats Luspa' <mats.luspa(a)irf.se>
<mailto:mats.luspa@irf.se>
*Kopia:* 'saml-admins(a)swamid.se' <saml-admins(a)swamid.se>
<mailto:saml-admins@swamid.se>
*Ämne:* [Saml-admins] Re: MFA i shibboleth
Hej Mats!
Misstänker att du måste ange att även authn/TOTP stödjer de
MFA-klasser som du vill stödja, och alltså inte att "bara"
authn/MFA gör det.
Du skulle då kunna behöva lägga till även denna property i
authn/authn.properties om du inte redan gjort det:
idp.authn.TOTP.supportedPrincipals = \
saml2/urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken, \
saml2/https://refeds.org/profile/mfa
(Vi har inte tagit med
saml1/https://refeds.org/profile/mfa varken
i idp.authn.MFA.supportedPrincipals eller
idp.authn.TOTP.supportedPrincipals eftersom vi inte stödjer SAML1.)
Hoppas att detta kanvara till hjälp!
Med vänliga hälsningar / Best regards
Björn Wiberg
Uppsala universitet / Uppsala University
Avdelningen för universitetsgemensam IT / University IT Services
Infrastruktur / Infrastructure
Tjänstedrift / Service Operations
*Från:* Mats Luspa via Saml-admins <saml-admins(a)lists.sunet.se>
*Skickat:* den 11 oktober 2024 09:14
*Till:* saml-admins(a)swamid.se
*Ämne:* [Saml-admins] Re: MFA i shibboleth
Hej!
Jag kunde inte släppa detta eftersom WebAuthn verkar dröja ett
tag. Men i alla fall det ser ut att lyckas med TOTP förutom det
sista steget då idp:n inte verkar signalera på korrekt sätt att
MFA lyckats till SP:n. Så här står det i log-filerna:
2024-10-10 18:29:12,250 - INFO
[net.shibboleth.idp.plugin.authn.totp.impl.TOTPCredentialValidator:185]
- Credential Validator DefaultTOTPValidator: Login by 'matsl'
succeeded
2024-10-10 18:29:12,331 - WARN
[net.shibboleth.idp.authn.impl.AttributeSourcedSubjectCanonicalization:175]
- Profile Action AttributeSourcedSubjectCanonicalization: No
attributes found, canonicalization not possible
2024-10-10 18:29:12,334 - INFO
[net.shibboleth.idp.authn.impl.SelectSubjectCanonicalizationFlow:60]
- Profile Action SelectSubjectCanonicalizationFlow: Moving
incomplete flow c14n/attribute to intermediate set, reselecting a
different one
2024-10-10 18:29:12,350 - WARN
[net.shibboleth.idp.authn.impl.FinalizeAuthentication:168] -
Profile Action FinalizeAuthentication: Authentication result for
flow authn/MFA did not satisfy the request
TOTP-valideringen går igenom men ändå så upfylls inte kraven.
Kraven från SP:n är enligt konfiguration:
<RequireAll>
ShibRequestSetting authnContextClassRef
https://refeds.org/profile/mfa
require authnContextClassRef
https://refeds.org/profile/mfa
require valid-user
</RequireAll>
Jag har även kollat vad som skickas från SP:n och det är:
<samlp:AuthnRequestxmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"AssertionConsumerServiceURL="https://apache2-sp-provider-shibboleth-test-mfa.internal.irf.se/Shibboleth.sso/SAML2/POST"
<https://apache2-sp-provider-shibboleth-test-mfa.internal.irf.se/Shibboleth.sso/SAML2/POST>Destination="https://testidpshibboleth.irf.se/idp/profile/SAML2/Redirect/SSO"
<https://testidpshibboleth.irf.se/idp/profile/SAML2/Redirect/SSO>ID="_a9a4ec59b279c17b58296213b4c9bc0b"IssueInstant="2024-10-10T18:43:30Z"ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"Version="2.0"><saml:Issuerxmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">*https://apache2-sp-provider-shibboleth-test-mfa.internal.irf.se/Shibboleth.sso/Metadata*</saml:Issuer><samlp:NameIDPolicyAllowCreate="1"/><samlp:RequestedAuthnContext><saml:AuthnContextClassRefxmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">*https://refeds.org/profile/mfa*</saml:AuthnContextClassRef></samlp:RequestedAuthnContext></samlp:AuthnRequest>
Transitionsmappen för mfa ser ut så här:
<util:map id="shibboleth.authn.MFA.TransitionMap">
<entry key="">
<bean parent="shibboleth.authn.MFA.Transition"
p:nextFlow="authn/Password" />
</entry>
<entry key="authn/Password">
<bean parent="shibboleth.authn.MFA.Transition"
p:nextFlow="authn/TOTP" />
</entry>
</util:map>
Man loggar in som vanligt via lösenordsdialog. Sedan dyker
TOTP-dialogen upp där man skriver in koden så att säga. Efter
detta kommer alltså svaret från Idp:n enligt:
*Status:* urn:oasis:names:tc:SAML:2.0:status:Responder
*Sub-Status:* urn:oasis:names:tc:SAML:2.0:status:NoAuthnContext
*Message:* An error occurred.
I log-filerna allltså så meddelas det att TOTP validerats.
Felmeddelandet verkar tyda på auhnContextClassRef inte har blivit
satt i Idp:n. Det är där jag inte är klar på var man sätter
authnContextClassref eller hur det skall signaleras till sp:n att
TOTP supportas och har validerats korrekt.
Jag har försökt sätta detta i authn/general-authn.xml utan att
resultatet förbättrats:
<bean p:id="authn/MFA"
parent="shibboleth.AuthenticationFlow">
<property name="supportedPrincipals"> <list> <bean
parent="shibboleth.SAML2AuthnContextClassRef"
c:classRef="https://refeds.org/profile/mfa"
<https://refeds.org/profile/mfa> /> </list> </property>
</bean>
I authn/authn.properties har jag satt följande vad gäller MFA:
idp.authn.MFA.supportedPrincipals = \
saml2/http://id.elegnamnden.se/loa/1.0/loa3, \
saml2/urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocol, \
saml2/urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport,
\ saml2/urn:oasis:names:tc:SAML:2.0:ac:classes:Password, \
saml2/urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken, \
saml1/urn:oasis:names:tc:SAML:1.0:am:password, \
saml2/https://refeds.org/profile/mfa, \
saml1/https://refeds.org/profile/mfa
idp.authn.TOTP.authenticator =
net.shibboleth.idp.authn.impl.TOTPAuthenticator
idp.authn.TOTP.secretAttribute = totpSecret
idp.authn.TOTP.tokenSeedAttribute = totpSecret
idp.authn.TOTP.tokenLength = 6 idp.authn.TOTP.maxClockSkew = PT30S
idp.authn.TOTP.authenticationDuration = PT15M idp.authn.flows =
MFA|Password|TOTP
Är det någon som kan ha en idé vad problemet kan vara? Kanske
någon som lyckats med MFA?
Jag antar att jag kommer att stöta på samma problem med WebAuthn
också.
/MVH Mats
Den 2024-09-27 kl. 18:29, skrev Mats Luspa:
Ok, jag förstår detta. Men det skulle varit intressant att få
reda på vad problemet består i. Men det är nog bäst att vänta
med detta tills passkeys kommer för Shibboleth.
/MVH Mats
Den 2024-09-27 kl. 16:32, skrev Pål Axelsson:
Hej Mats,
VI rekommenderar att inte införa TOTP som andra faktor
eftersom det är en nätfiskesårbar teknik. Vidare står det
i nuvarande tillitsprofiler som guidance att TOTP kommer
att plockas bort som godkänd teknik under 2025 och i
kommande förslag om uppdatering av tillitsprofilerna att
mjukvarubaserad TOTP inte är tillåten efter årsskiftet
2025/26.
Den teknik som primärt ersätter TOTP är passkeys och
fysiska säkerhetsnycklar. Shibboleth Identty Provider
kommer få officiellt stöd för detta senare i år om jag
förstått konsortiet korrekt.
Pål
------ Originalmeddelande ------
Från "Mats Luspa via Saml-admins"
<saml-admins(a)lists.sunet.se>
Till "saml-admins(a)swamid.se"
<mailto:saml-admins@swamid.se> <saml-admins(a)swamid.se>
Datum 2024-09-27 15:19:35
Ämne [Saml-admins] MFA i shibboleth
Hej!
Jag har försökt implementera MFA i shibboleth med
TOTP. Jag skickar i bilagan dokumentationen hur jag gjort.
I slutet av dokumentationen ser ni problemet jag
stöter på. Jag antar att en del av er redan
implementerat MFA med lyckat resultat och kanske kan
se något uppenbart fel i konfigurationen.
/MVH Mats
-- --
Mats Luspa
Phone: +46 (0)980 79 022
Cellular phone: +46 (0)725813330
Institutet för rymdfysik Fax: +46 (0)980 79 050
Swedish Institute of Space Physics email: matsl(a)irf.se
Visiting/Delivery address: Bengt Hultqvists väg 1,
SE-981 92 Kiruna
Postal address: Box 812, SE-981 28 Kiruna
--
PGP Public Key:
https://www.irf.se/pgp/matsl
Digital vcard:
https://www.irf.se/vcard/mats.luspa
VARNING: Klicka inte på länkar och öppna inte bilagor om du inte
känner igen avsändaren och vet att innehållet är säkert.
CAUTION: Do not click on links or open attachments unless you
recognise the sender and know the content is safe.
VARNING: Klicka inte på länkar och öppna inte bilagor om du inte
känner igen avsändaren och vet att innehållet är säkert.
CAUTION: Do not click on links or open attachments unless you
recognise the sender and know the content is safe.
_______________________________________________
Saml-admins mailing list --saml-admins(a)lists.sunet.se
To unsubscribe send an email tosaml-admins-leave(a)lists.sunet.se
--
--
Mats Luspa
Phone: +46 (0)980 79 022
Cellular phone: +46 (0)725813330
Institutet för rymdfysik Fax: +46 (0)980 79 050
Swedish Institute of Space Physics email:matsl@irf.se
Visiting/Delivery address: Bengt Hultqvists väg 1, SE-981 92 Kiruna
Postal address: Box 812, SE-981 28 Kiruna
--
PGP Public Key:https://www.irf.se/pgp/matsl
Digital vcard:https://www.irf.se/vcard/mats.luspa
VARNING: Klicka inte på länkar och öppna inte bilagor om du inte
känner igen avsändaren och vet att innehållet är säkert.
CAUTION: Do not click on links or open attachments unless you
recognise the sender and know the content is safe.
_______________________________________________
Saml-admins mailing list --saml-admins(a)lists.sunet.se
To unsubscribe send an email tosaml-admins-leave(a)lists.sunet.se
--
--
Mats Luspa
Phone: +46 (0)980 79 022
Cellular phone: +46 (0)725813330
Institutet för rymdfysik Fax: +46 (0)980 79 050
Swedish Institute of Space Physics email:matsl@irf.se
Visiting/Delivery address: Bengt Hultqvists väg 1, SE-981 92 Kiruna
Postal address: Box 812, SE-981 28 Kiruna
--
PGP Public Key:https://www.irf.se/pgp/matsl
Digital vcard:https://www.irf.se/vcard/mats.luspa