CAS Protocol Service Registry (Shib 3.3)
Andrew Morgan
morgan at orst.edu
Wed Jan 3 12:44:29 EST 2018
On Tue, 2 Jan 2018, Dan Malone wrote:
> We are looking for a way to simplify the configuration of our CAS services.
> In our current CAS usage, we are not doing any additional attribute release,
> only username.
>
> From what we can tell, to enable a CAS client, at a minimum we need to do two
> things:
>
> 1. add the service URL in the cas.serviceRegistry bean in cas-protocol.xml
> 2. release the username attribute in attribute-filter.xml
>
> To make it easier to add new services, we would like to be able to add the
> service in once place.
>
> For option A, we add a very permissive wildcard to cas-protocol.xml and
> control services using attribute-filter.xml. We got this to work, but when
> you have an unauthorized service, a ticket is granted and the failure is not
> noticed until the verification step. Neither the user or the service knows
> why because the ticket was issued.
>
> For option B, we would like to use cas-protocol.xml to limit the services and
> in attribute-filter.xml, release username to all CAS services. This provides
> the user friendly message "...application you have accessed is not
> registered..." similar to pre-shib CAS. However, we can not use the very
> permissive wildcard in attribute-filter.xml, because this would also release
> via SAML to all entities in, for example, the InCommon metadata, and our
> campus is not ready to release to R&S, much less the whole aggregate. (Yes,
> we're working on the R&S release)
>
> So, here's my question:
>
> How do we release an attribute to all services defined in the
> cas.serviceRegistry bean list?
Define your services in cas-protocol.xml with a p:group="foo" property,
like this:
<bean class="net.shibboleth.idp.cas.service.ServiceDefinition"
c:regex="https://your-service\.example\.edu"
p:group="standard-attributes"
p:authorizedToProxy="false"
p:singleLogoutParticipant="false" />
Then configure attribute release for that group in attribute-filter.xml:
<AttributeFilterPolicy id="cas-standard-attributes">
<PolicyRequirementRule xsi:type="OR">
<Rule xsi:type="InEntityGroup" groupID="standard-attributes" />
</PolicyRequirementRule>
<AttributeRule attributeID="uid">
<PermitValueRule xsi:type="ANY"/>
</AttributeRule>
</AttributeFilterPolicy>
When you add a new service to cas-protocol.xml, make sure you include the
p:group property.
Andy
More information about the users
mailing list