Resurrecting SAMLInKerberos branch

Luke Howard lukeh at padl.com
Thu Mar 31 08:37:40 EDT 2011


Apologies for the cross-posting.

Back in 2009 I did some work on supporting SAML in Kerberos authorisation data  (http://k5wiki.kerberos.org/wiki/Projects/SAMLInKerberos).

Anyway, after the recent work with Moonshot, I thought it might be fun to resurrect this. Forward-porting it to trunk was not too difficult, but I took this opportunity to surface SAML attributes via the new Shibboleth resolver, rather than exposing the raw SAML. (The GSS EAP mechanism exposes both, but for reasons of expediency I chose to do only the former in the Kerberos case.) The resolver allows one to filter the SAML attributes through some local policy.

So, running the sample gss-server app, one might see:

Attribute local-login-user Authenticated 
lukeh
6c756b6568

Attribute local-login-shell Authenticated 
/bin/tcsh
2f62696e2f74637368

Attribute cn Authenticated 
Luke Howard
4c756b6520486f77617264

Put this together with:

* a GSS naming extensions ACL plugin for OpenLDAP
* a SASL GS2 bridge that dynamically advertises available GSS mechanisms (and allows the initiator's GSS name to be surfaced through the SASL context)
* patches to MIT and Heimdal that offer "gss_userok" on top of naming extensions, used by OpenSSH (cf. "local-login-user" above)
* other mechanisms supporting surfacing SAML attributes via naming extensions

and you can start to do some pretty interesting things with not a lot of code.

The code is in the users/lhoward/saml2 branch. There's still a bit of dead code that needs pruning there. The interesting stuff is in src/plugins/authdata/saml_{client,server}.

regards,

-- Luke


More information about the krbdev mailing list