Centralized Discovery Service V3
The currently shipping CDS is getting very old and cumbersome and currently requires several libraries which are end of life or will be by mid-2016.
There are currently active discussions as to whether we will offer anything in replacement or point customers at any of the other discovery implementations that have become available. If anyone wish to make input to this process they should do so sooner rather than later.
If we are to develop a CDS then we need to start reasonably soon, and with that in mind below is some collated documentation (part requirements document, part top level design document, part project plan).
The CDS MUST
- Handle both the Discovery Protocol and the Shibboleth IdP Initiated SSO (WAYF) protocol
- Be trivially clusterable (no server state)
The CDS SHOULD
- Be easily customizable for other “skins” (the touch point will be integration with the UK CDS)
- Allow easy and changes to the "skinning". (e.g. without rebuilding the war file if possible).
The CDS need not offer the following (which are available to CDS V2)
- Offer any configuration compatibility to V2 of the CDS
- Support WAYF and DS protocols on the same end point (the current CDS does)
- Any concept of Federation. Metadata is Just a bunch of data.
- To leverage the Shibboleth EDS
- To leverage OpenSAML3 and (if possible) code for Shibboleth IdP V3 (for instance Metadata ProviderParsers?), ReloadingServices
- Spring MVC
- Spring Beans
- OpenSAML and the implementations of
- (probably) The IdP impplemerntation of
net.shibboleth.idp.saml.metadata.impl.ReloadingRelyingPartyMetadataProvider (and all the supporting infrastructure)
- A pair of protocol bridges to allow WAYF to be handled by the common DS code (possibly using local profile of the DS protocol to encapsulate the WAYF parameters)
- Velocity Template to render the putative IdP List
- Design document for the protocol bridges
- Design notes for the CriteriaSets used to generate the data
- Learn Spring MVC
- Design items list above
- Extra Design items resulting from MVC code learn.