Check out the Shibboleth project:

http://shibboleth.internet2.edu/