We had a similar experience and I can share what we found. We have been on
CAS 3.x for many years and used a customization to trigger similar web flow
behavior. With the upgrade to CAS 5.x, we wanted to use the built-in
functionality. Here is an exchange we had with a consultant related to the
CAS project:

-----------------
Question:
> However, we can't seem to get ssoEnabled to work as expected. When
ssoEnabled is true, we expect that the link to B presented in the message
would not require the user to login again. However, that is not our
experience. It seems CAS only builds the SSO session after the Proceed
button is clicked, not when the links in the message are used.

Answer:
This is all correct and is the intended behavior. Given that CAS has never
established SSO on the first run and B is protected by CAS,
redirecting/accessing B will always ask for user credentials. One cannot
build an SSO session first, only to then try to destroy it if SSO is
interrupted. That would be a security breach in the right variations. You
also can never make the link to B to work, because if a link to B appears
in the interrupt screen, simply clicking it is not the same thing as CAS
issuing a ticket to it after a successful authentication, for B to grab
that ticket and validate it. The link is exactly that; just a link. You
wouldn't have access to a ticket, because you have not properly passed
through the SSO flow because you were interrupted. We have had situations
in the past were tickets/sso were created prematurely before user were to
access a link, (i.e. password self service app), and those cause many other
weird issues.

The ssoEnabled flag basically controls whether CAS should challenge user
for credentials and build the SSO cookie. It effectively should do the same
thing as renew=true, and is more or less the same thing as ssoEnabled flag
of a service in the registry. If this is dysfunctional, where you see REST
return false for ssoEnabled and yet you are not challenged for credentials,
that would be a bug we can try to fix.
-----------------

The behavior we want would clearly create a security risk in the
authentication process. (We recognized this in our 3.x mod as well, but
accepted it at the time.)

We also provide a grace period for expired passwords. The act of checking
for a login message triggers the password expiration and starts the grace
period. If the person is still within the grace period, the message will
not block and a Proceed button is presented by CAS. If the grace period has
ended, the block is set to true and the Proceed button no longer appears.
The message contains a link to the site where the user can change their
password. This does not support SSO due to the nature of 'ssoEnabled' and
the user must authenticate again. We present this a security feature. :)

The login interrupt messages are useful, but we have found that we must
adapt our processes to the capability. I'm in favor of that because trying
to maintain the modification to make CAS match our process is what kept us
on 3.x for so long.

Hope this helps.

-dirk

On Tue, Dec 4, 2018 at 10:39 AM Shawn Cutting <scutt...@messiah.edu> wrote:

> Good morning,
> I am trying to create a dynamic interrupt page and I think I am
> misunderstanding what the "ssoEnabled" setting does.  From the
> documentation, it seems that if this is set to true, then it would give a
> service ticket despite the action that would be taken on the interrupt
> page.  Here is what I am trying to do:
>
> I want to warn people that their passwords are about to expire (we use
> Active Directory as LDAP) and I am giving them the option to "Remind me in
> 3 days." This option updates a database with the reminder date and then
> should redirect to the service page they originally called.  But instead,
> it takes them back to the CAS login where they have to reauthenticate and
> it bypasses the interrupt per my code.  What I want it to do is, after
> pressing "Remind me" to take them to the service page without having to
> authenticate again, which is what I thought should happen with
> "ssoEnabled=true."
>
> Can anyone give me some better insight?
> Thanks!
>
> --
> - 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 cas-user+unsubscr...@apereo.org.
> To view this discussion on the web visit
> https://groups.google.com/a/apereo.org/d/msgid/cas-user/0c6e7901-7ef7-48b0-91d8-d2d5f10170d6%40apereo.org
> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/0c6e7901-7ef7-48b0-91d8-d2d5f10170d6%40apereo.org?utm_medium=email&utm_source=footer>
> .
>

-- 
- 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 cas-user+unsubscr...@apereo.org.
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/CAJ%3D0EZzR_yjzQVKYCqaft3iLx2QYX5ofnGQunx_fH3n8vto2-A%40mail.gmail.com.

Reply via email to