I share Adam's perspective here. The big sticking point had been backward compatibility with current CAS clients. Initially the thought was to simply add attributes to the current validation end-point as so many deployers have done in practice. But given the issue of multi-valued support and wanting to "get it done right", perhaps we should revisit the idea of a new versioned validate end-points? This would be consistent with what was done in the past with CAS1/2 protocol.
Current endpoints: /validate - CAS 1.0 protocol /serviceValidate & /proxyValidate - CAS 2.0 protocol Proposed endpoints: /v3/serviceValidate % /v3/proxyValidate - CAS 3.0 protocol? Best, Bill On Tue, Nov 5, 2013 at 4:56 PM, Adam Franco <afra...@middlebury.edu> wrote: > On Tue, Nov 5, 2013 at 8:11 AM, Marvin Addison <marvin.addi...@gmail.com> > wrote: >> >> > I'm not saying that the 4.0 must support multi-valued attributes. >> >> I believe it would be a big mistake to fail to provide some reasonable >> support for multi-valued attributes out of the box. Many if not most >> directory attributes are naturally multivalued, notably role data used >> for authorization; lack of support for that case would likely invite >> the sorts of one-off customizations that we presumably want to >> curtail. > > > As a heavy user of multi-valued attributes (mostly LDAP MemberOf DNs) and > the author of the phpCAS attribute support code, I'd like to second Marvin's > suggestion that proper multi-valued attribute support will be critical to > standardizing much of the usage of CAS Protocol v3 and CAS Server 4.0. > > Recently more and more SAAS vendors we contract with are beginning to > support CAS authentication. With the exception of platforms implemented in > PHP and using phpCAS, all vendors have stumbled on access control and > name/email population based on released attributes due in part to the lack > of support in their CAS client libraries and in part due to the lack of > documentation on attribute release in the protocol. Due to the lack of a > standardized method for attribute release, we are forced to provide vendors > with our own documentation of our own particular way of doing attribute > release. Vendors in turn must add this support as a customer-specific > customization to their software rather than as a general improvement that > they can provide to all customers. > > The sooner CAS Protocol v3 and CAS Server 4.0 support both single and > multi-valued attribute release, the sooner we can begin pushing all users to > the new protocol and get rid of our numerous incompatible customizations. > > > ** Encoding of multi-valued attributes ** > > The latest version of the CAS 3 protocol simply states that: > > it is recommended to form custom attributes as <cas:attributes > name="NAME">VALUE</cas:attributes>. > > I suggest that this language be extended to recommend something like: > > Multiple values for the same attribute name should be formed as > <cas:attributes name="NAME">VALUE1</cas:attributes> > <cas:attributes name="NAME">VALUE2</cas:attributes> > > Making these multiple values proper XML elements is absolutely necessary to > ensure compatibility between implementations in a variety of environments. > Compatibility will be very difficult to achieve if implementations are > forced to interpret the particularities of JSP collection/string > serialization for arbitrary attribute values. > > Best, > Adam > > -- > > Adam Franco > Senior Software Engineer - Web Applications > Library and Information Services > Middlebury College > Middlebury, VT 05753 > afra...@middlebury.edu > 802.443.2244 > > > On Tue, Nov 5, 2013 at 10:32 AM, Fredrik Jönsson <f...@kth.se> wrote: >> >> A couple of thoughts. First of all the attribute release is a most >> welcome addition to the CAS protocol and I really look forward to use >> it. >> >> I would think carefully about the road ahead, and as I see it there are >> three options: >> >> 1. "Accidentally" print multi-value attributes as a list of sorts which >> is currently done, and the Java client likewise "accidentally" supports >> and interpret as a list. >> >> 2. Explicitly not support multi-value attributes and either remove them >> or print the first item in the list only pretending that it is a single >> value. >> >> 3. Actually implement, in the server at least, as suggested in the >> specification. >> >> I'd recommend sticking to the specification in the protocol draft and >> use any of the last two options. I agree that multi-value attributes are >> common, indeed we have such that I would most definitely want to use and >> would prefer support as specified, but I could wait for another >> iteration. I think that the current RC2 server behavior is risky, since >> implementations may come to depend on a de facto undocumented behavior >> and blow up at a later upgrade which prints multi-value attributes some >> other way. The server interface is the XML output and not the Java >> client library. >> >> Regards, >> /Fredrik >> >> On tis, 2013-11-05 at 08:11 -0500, Marvin Addison wrote: >> > > I'm not saying that the 4.0 must support multi-valued attributes. >> > >> > I believe it would be a big mistake to fail to provide some reasonable >> > support for multi-valued attributes out of the box. Many if not most >> > directory attributes are naturally multivalued, notably role data used >> > for authorization; lack of support for that case would likely invite >> > the sorts of one-off customizations that we presumably want to >> > curtail. >> > >> > M >> > >> >> >> -- >> You are currently subscribed to cas-dev@lists.jasig.org as: >> afra...@middlebury.edu >> >> To unsubscribe, change settings or access archives, see >> http://www.ja-sig.org/wiki/display/JSG/cas-dev > > > -- > You are currently subscribed to cas-dev@lists.jasig.org as: wgt...@gmail.com > To unsubscribe, change settings or access archives, see > http://www.ja-sig.org/wiki/display/JSG/cas-dev -- You are currently subscribed to cas-dev@lists.jasig.org as: arch...@mail-archive.com To unsubscribe, change settings or access archives, see http://www.ja-sig.org/wiki/display/JSG/cas-dev