Full Stack Development - by Ryan Kirkman

Three Approaches to SSO

In this article, we'll explore 3 different approaches to Single Sign-On (SSO). It is assumed that the reader is working at a company that has many applications, and would like a unified way for their users to authenticate into their many applications. Ideally, the same credentials would be used to authenticate across all applications.

They are:

  1. Don't do SSO - each application manages authentication and authorization independently
  2. Thin SSO - SSO manages authentication and applications independently manage authorization
  3. Heavy SSO - SSO manages authentication and authorization

Don't do SSO

This is the easiest option, but is a classic violation of the DRY principle. Each application manages authentication and authorization separately.

Advantages

Disadvantages

Thin SSO

Thin SSO appears to be the way most SSO systems are designed. For example, your Google or Facebook account. You log in once and are authenticated on all sites that support either Google or Facebook SSO, but each application independently manages authorization.

This is probably the most practical approach to SSO. The only assumption it makes is that a user is the same across all applications. It leaves authorization up to each application as we are assuming an authorization role requires the context of an application to give it meaning.

Advantages

Disadvantages

Thick SSO

This is the most extreme option, where both authentication and authorization are handled by the SSO system. The application can query the SSO system for a user's roles, but it has no control over them. The job of the application is to interpret the roles within the context of the application.

Advantages

Disadvantages

comments powered by Disqus