Designing an Authentication System: A Dialogue in Four Scenes (1988)
Kerberos is an underrated and underused authorization protocol.<p>(Last time I used it) V5 was reasonably safe to use on the open Internet. It integrates well with MacOS, Linux, BSD and other Unix auth systems and also with SSH.<p>I never really understood why we don&#x27;t see more of it in &quot;Cloud&quot; models, especially given how decoupled a Kerberos Principal is from the underlying Unix UID.<p>Rather than using SSH keys everywhere and thus having to manage .authorized_keys files all over an estate, the users can `kinit` in a terminal (even on a stock MacOS) and they&#x27;re away. The credentials are managed centrally. It has service&#x2F;user and delegation properties similar to oAuth and friends.<p>I&#x27;ve not looked at it with a modern and critical cryptographic eye but, for example, there is (configurable) support for not giving out the initial set of tickets (which is encrypted with the user&#x27;s password) until the client has proven it knows the user&#x27;s password.<p>Many browsers (especially on the MS platform, but definitely also Firefox on all platforms as well) can be configured to use the tickets for HTTP authentication (like BASIC or DIGEST, but using a different scheme) at configured domains. Lots of web servers and web apps are easily configurable to put the correct things in the correct environment variables or HTTP headers so integration with random web services is straightforward.<p>Once you&#x27;ve got SSH and Browsing covered with a single credential, you&#x27;re well on your way to a really versatile SSO scheme.