Todo comenzó con las organizaciones que necesitaban una forma de centralizar sus sistemas de autenticación para una mejor gestión y seguridad. Ahí es donde apareció el Single Sign On (SSO). El inicio de sesión único (SSO) es un servicio centralizado de autenticación de sesiones y usuarios en el que se puede utilizar un conjunto de credenciales de inicio de sesión para acceder a varias aplicaciones. Su belleza está en su simplicidad; el servicio te autentifica en una plataforma, permitiéndote iniciar sesión de forma transparente en varios servicios internos sin tener que entrar y salir cada vez.
Consideremos este ejemplo:
Spotify quiere acceder a tu lista de amigos desde tu cuenta de facebook.
Spotify te redirige al servidor de autorización (facebook en este caso)
Si autorizas el acceso, el servidor de autorización envía un código de autorización al cliente (Spotify) en la respuesta de callback.
Entonces, este código se intercambia contra un token de acceso entre el Facebook y Spotify.
Ahora Spotify es capaz de utilizar este token de acceso para consultar al servidor de recursos (Facebook) y recuperar tu lista de amigos.
Una cosa a tener en cuenta es que el usuario nunca llega a ver el token de acceso, se almacenará en la sesión. El servidor de autorización también envía otra información como el tiempo de vida del token y un token de refresco.
OpenID Connect
OpenID Connect es una simple capa de identidad sobre el protocolo OAuth 2.0 que extiende OAuth2 y permite la ‘autenticación federada’.
El flujo del proceso de OpenID Connect es similar al flujo de autorización de OAuth2 con la principal diferencia de un ‘id-token’ que permite la autenticación del usuario.
Nótese que la Autenticación Federada es completamente diferente a la Autorización Delegada. Tomemos de nuevo el ejemplo de Facebook y Spotify
Autenticación Federada es iniciar sesión en Spotify usando tus credenciales de Facebook.
Autorización Delegada es la capacidad de una aplicación externa para acceder a los recursos. En este caso, Spotify intenta acceder a tu lista de amigos de Facebook para importarla a Spotify.
Para terminar, aquí tienes una tabla que resume los tres protocolos/marcos.