If I did this, which I actually had several times in the past, I would use a combination of Kerberos and LDAP. Kerberos processes authentication and provides tokens to users. LDAP provides authorization; group membership information, user contact information, etc.
Kerberos is very, very well tested and widely used. To protect the Kerberos web application, use Apache mod_krb5 or a solution such as Stanford WebAuth. The user authenticates once with Kerberos, and then their browser will use the ticket through SPNEGO to automatically log into the web application. If you have a Windows Active Directory domain, your users already have Kerberos tickets that you can use in your computer login session!
Kerberos is also supported in many other network server programs such as OpenSSH, various IPSEC VPN tools, email (both SMTP and IMAP), XMPP (Jabber), etc. etc.
The Kerberos infrastructure can be as redundant as you like, and organized as you like. Regions can have many authentication servers and can trust each other arbitrarily.
This is not just a solution, it is a solution for a single.
source share