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/890e3828-829b-40a3-87e8-99b1d190d653%40apereo.org.

Reply via email to