Hello Hayden

i am working on a poc implementing trusted device fingerprinting with cas 
6.1.2 (json storage for now) and i had the same problem, the user was never 
prompted the invite to register the device. I did a little debugging on cas 
and i found that if you redefine the 
class  org.apereo.cas.config.CasSimpleMultifactorAuthenticationConfiguration 
in your war overlay and remove the conditions of activation of the 
subclass CasSimpleMultifactorTrustConfiguration :


l133-l134 :

@ConditionalOnBean(name = "mfaTrustEngine")
@ConditionalOnProperty(prefix = "cas.authn.mfa.simple", name = "
trustedDeviceEnabled", havingValue = "true", matchIfMissing = true)

then it works, though i have no idea yet of the possible side effects of 
this modification.

For now, cas registers the devices but the MFA always kicks in when a user 
try to connect from the same device, have anyone had any succes with this 
feature ?


On Friday, December 13, 2019 at 4:54:21 PM UTC+1, Hayden Sartoris wrote:
>
> The brief story: CAS never kicks off the multifactor trusted device 
> registration webflow. I've tried this with just about every version of CAS 
> 6, most recently with 6.1.2 and a large number of 6.2.0 snapshots. I've 
> tested this with Google Authenticator, using both Redis and JSON for token 
> storage, as well as CAS Simple MFA. I'm posting the very stripped-down 
> configuration I've tried against a bare overlay template, but this has also 
> been tested in a much more fully fledged environment with an LDAP backend, 
> Redis ticket storage, etc. etc..
>
> What stands out to me is that this was working before, at the beginning of 
> the year, I believe. That leads me to suspect that something changed such 
> that I am effectively misconfiguring the trusted MFA settings. Otherwise, I 
> don't see how it could be so uniformly broken across multiple versions. On 
> the other hand, I've attempted this with MFA REST storage, and the code for 
> that is actually broken (in the sense that the cleaner process errors out 
> without even contacting the REST URL), so perhaps there's just something 
> totally wrong with MFA trusted devices in general.
>
> My testbed uses the vanilla Apereo CAS overlay template with the below 
> modifications, including removing cas.properties in favor of cas.yml. I 
> have a single RegexRegisteredService with no configuration other than the 
> name, id, and URL. I am able to login as casuser, which triggers MFA 
> registration as expected, proceeds to prompt for the token, and then... 
> authenticates me directly to the service. The entire time, the only 
> occurrence of the strings 'trust' or 'Trust' in the logs are 1. CAS dumping 
> the configured property names at startup, 2. warnings about the encryption 
> keys being set (obviously doesn't occur with a production configuration), 
> and 3. the MFA trusted device storage cleaner firing and not finding 
> anything.
>
> I'm really at the end of my rope here, and hoping someone will tell me I'm 
> an idiot and I've missed something obvious.
>
> Thanks for any input,
> Hayden Sartoris
>
> *Additional modules in build.gradle:*
> dependencies {
>     // Other CAS dependencies/modules may be listed here...
>     compile 
> "org.apereo.cas:cas-server-support-json-service-registry:${casServerVersion}"
>     compile "org.apereo.cas:cas-server-support-gauth:${casServerVersion}"
>     compile 
> "org.apereo.cas:cas-server-support-gauth-redis:${casServerVersion}"
>     compile 
> "org.apereo.cas:cas-server-support-trusted-mfa:${casServerVersion}"
> }
>
> *CAS configuration:*
> redis:
>   host: redis
>   port: 6379
> server:
>   port: 8443
>   ssl:
>     enabled: true
>     keyStore: <...>
>
> cas:
>   serviceRegistry.json.location: "file:/etc/cas/services"
>   server:
>     name: https://cas02.bard.edu:8443
>     prefix: ${cas.server.name}/cas
>   authn:
>     mfa:
>       globalProviderId: mfa-gauth
>       gauth:
>         issuer: Bard
>         label: cas02.bard.edu
>         codeDigits: 6
>         timeStepSize: 30
>         trustedDeviceEnabled: true
>         redis:
>           host: ${redis.host}
>           port: ${redis.port}
>       trusted:
>         deviceRegistrationEnabled: true
>         json.location: "file:/etc/cas/config/trusted-dev.json"
>

-- 
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
--- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/77f731ec-4b03-4a8e-8db2-160e64bd76f2%40apereo.org.

Reply via email to