Shibboleth IdP 4.0 and Shibcas Plugin
Matt Elson
mailing_lists.shibboleth_users at melson.fastmail.net
Tue Sep 29 16:55:11 UTC 2020
> The later CAS servers supports SAML, so it probably makes more sense to just implement proxying between the two with SAML to avoid unnecessary third-party code. But then you already noted "change how you do it" is the point of asking the question.
>
> There is one small area of complexity to getting proxying to work, but in other respects it is not a feature that is as complex to use as you might expect it to be. That surprises me more than anyone.
>
> -- Scott
So whipped this up in test (for anyone else investigating this route,
the only real headscratcher I hit was having to disable checkAddress for
the CAS IDP entity since CAS sets SubjectLocality to the CAS server
itself and thus fails checkAddress validation) and seems to be working
smoothly.
However, haven't quite figured out how to implement a few features of
ShibCAS we made use for so revealing my laziness to the world and asking
for hints or at least if I'm on the right track.
One feature was the ability to send the entityID of the initail SP over
via ShibCAS and let CAS make decisions based on it (such as whether or
not to trigger Duo, for example). Looking at how the proxying works, am
I correct in saying that the best solution under authn/SAML would be to
configure the Shibboleth IDP to make this decision instead? (Doesn't
seem like the initial SP's entityID is even passed up to CAS.)
The second related feature was ShibCAS's handling of requests for
"https://refeds.org/profile/mfa" (basically it would go to CAS with a
magic parameter to trigger mfa and then make sure to return the correct
context to the SP). While it's easy enough for me to setup authn/SAML to
pass releveant profile and even have CAS trigger Duo accordingly, CAS's
IDP doesn't return the proper AuthnContext (looking at CAS config
options, there doesn't seem to be a way to have it do so dynamically).
I'm leaning towards handling this in Shibboleth directly, but it seems
like another option could be to configure Shibboleth in some fashion so
that it reads/parses the assertion returned from CAS and updates the
AuthnContext when appropriate. (That said, I assume I'd have to do
something quite custom to pull that off and that my effort would be
better directed towards learning to Duo-in-Shib, especially since the
future plan is to eventually consolidate platforms anyway).
Apologies for likely butchery of terminology and thanks in advance for
any help anyone can give.
Matt
More information about the users
mailing list