Hi Cris, I would be very happy to see OIDC/SAML2 support in Sling. As mentioned, there were a couple of initiatives, but none of them completed.
If anyone decides to give the implementation a shot, it would be important to: - use vetted libraries that do the bulk of the work. I think this was a problem with some of the earlier approaches - develop as much in the open as possible. The sling whiteboard is a good option, also a personal repo is ok if the intention is to contribute to Sling - make the module easy to test and incorporate in the Sling starter I am available to review and incorporate this contribution, and definitely there are others around. Thanks, Robert On Wed, 2020-02-12 at 16:27 -0500, Cris Rockwell wrote: > Hi Robert > > I would like to follow up with you about adding SAML2 SP (Service > Provider) support to Apache Sling. > > Our team reviewed security requirements with the leading identity > provider (IDP) administrator at the University. His suggestion was to > use SAML2 (or OIDC) and skip the LDAP authentication idea. We have > been using SAML2 for many years with other applications. It seems > SAML2 for open and closed source Java Enterprise applications is very > common, so I feel good about requesting SAML2 SP support for Apache > Sling. > > To start, I am studying the eBook OpenSAML V3 mentioned on the > Shibboleth website < > https://wiki.shibboleth.net/confluence/display/OS30/Home>;. The eBook > discusses a sample project < > https://bitbucket.org/srasmusson/webprofile-ref-project-v3/src/master/ > > and covers various aspects of using OpenSaml3 Java library. > > * Authentication request using HTTP Redirect Binding > * Assertion transported using HTTP Artifact Binding > * SAML Artifact transported using HTTP Redirect Binding > > If you or others have thoughts or recommendations for me about how to > make this happen, please let me know. > > Thanks > Cris Rockwell, App Sys Analyst/Programmer Sr > College of Literature, Science, and the Arts | University of > Michigan > LSA Technology Services | 6503 Haven Hall | 505 S. State Street | Ann > Arbor, MI I 48109 > Desk: 734.763.6818 | Email: cmroc...@umich.edu > > > > > > > > > On Dec 19, 2019, at 12:00 PM, Robert Munteanu <romb...@apache.org> > > wrote: > > > > Hi Cris, > > > > Hopefully the LDAP authentication will fulfill your requirements. > > Once > > you're done, it would be interesting to discuss (privately, if you > > prefer) what gaps you identified in the authentication support we > > offer. > > > > Thanks, > > Robert > > > > On Thu, 2019-12-12 at 09:45 -0500, Cris Rockwell wrote: > > > Hi Robert > > > > > > Thank you for your offer to guide an OIDC and/or SAML2 Sling > > > Authentication Handler implementation. Long term, I could also > > > see > > > contributing to a peer reviewed initiative to securely add the > > > features to Sling applications. After some thought, I might > > > follow up > > > with you about this out of band. > > > > > > In the short run, perhaps Oak’s LDAP authentication will support > > > the > > > features we need. > > > https://jackrabbit.apache.org/oak/docs/security/authentication/ldap.html > > > <https://jackrabbit.apache.org/oak/docs/security/authentication/ > > > ldap.html> > > > < > > > https://jackrabbit.apache.org/oak/docs/security/authentication/ldap > > > < > > > https://jackrabbit.apache.org/oak/docs/security/authentication/ldap > > > > > > > .html> > > > https://jackrabbit.apache.org/oak/docs/security/authentication/externalloginmodule.html > > > <https://jackrabbit.apache.org/oak/docs/security/authentication/ > > > externalloginmodule.html> > > > < > > > https://jackrabbit.apache.org/oak/docs/security/authentication/exte > > > rnalloginmodule.html> > > > > > > Thanks all. > > > Cris R > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Dec 11, 2019, at 11:58 AM, Robert Munteanu < > > > > romb...@apache.org> > > > > wrote: > > > > > > > > On Wed, 2019-12-11 at 11:38 -0500, Cris Rockwell wrote: > > > > > "What exactly would you need to manage JCR-based controls? I > > > > > would > > > > > imagine that mapping users to JCR groups based on whatever > > > > > data > > > > > your > > > > > identity solution provides and then creating access based on > > > > > ACLs > > > > > only > > > > > would satisfy your request." > > > > > > > > > > > > > > > We need to manage a few things at the identity provider: > > > > > 1. User attributes: username, name, email, phone, maybe a few > > > > > other > > > > > pieces of data about the user. > > > > > 2. Group membership > > > > > > > > > > When the user signs in, with SAML2 there is encrypted > > > > > metadata > > > > > which > > > > > contains that information. Upon sign in, Sling users should > > > > > be > > > > > created, their user attributes updated and the user should be > > > > > added > > > > > or removed from Sling group membership. Once the user has > > > > > signed > > > > > in, > > > > > then access is granted as usual using JCR-based ACL’s applied > > > > > for > > > > > the > > > > > groups. > > > > > > > > Right, I see that there is no support for that in the keycloak > > > > handler, > > > > as it was presented [1]. > > > > > > > > I don't think there is any out-of-the-box support for what > > > > you're > > > > looking for. > > > > > > > > I would be happy to guide anyone willing to implement such > > > > functionality though. > > > > > > > > Thanks, > > > > Robert > > > > > > > > > > > > [1]: > > > > https://github.com/netdava/adapt-to-2018-keycloak-sling-presentation/tree/master/adapt-to-2018-sling-keycloak/org-apache-sling-auth-keycloak > > > > < > > > > https://github.com/netdava/adapt-to-2018-keycloak-sling-presentation/tree/master/adapt-to-2018-sling-keycloak/org-apache-sling-auth-keycloak > > > > <https://github.com/netdava/adapt-to-2018-keycloak-sling- > > > > presentation/tree/master/adapt-to-2018-sling-keycloak/org- > > > > apache-sling-auth-keycloak>