El inicio de sesión único (SSO) permite que los usuarios accedan a muchas aplicaciones sin tener que introducir su nombre de usuario y contraseña cada vez. El lenguaje de marcado para confirmaciones de seguridad (SAML) es un estándar XML con el que los dominios web seguros pueden intercambiar datos de autenticación y autorización de los usuarios.
El papel de los proveedores de servicios y de identidades
Google ofrece un servicio de SSO basado en SAML con el que las empresas asociadas pueden autorizar y autenticar a los usuarios alojados que intenten acceder a contenido seguro. Google actúa como el proveedor de servicios online y proporciona servicios como Google Calendar y Gmail. Los partners de Google actúan como proveedores de identidades online y controlan los nombres de usuario, las contraseñas y otra información utilizada para identificar, autenticar y autorizar a los usuarios en aplicaciones web alojadas por Google.
Muchos proveedores de identidades de software libre y comerciales pueden ayudarte a implementar el SSO con Google.
Los clientes de escritorio siguen requiriendo que se inicie sesión
Es importante tener en cuenta que la solución de SSO solo sirve para aplicaciones web. Puedes permitir que tus usuarios accedan a los servicios de Google con clientes de escritorio. Por ejemplo, para proporcionar acceso POP a Gmail mediante Outlook, tendrás que proporcionar a tus usuarios contraseñas útiles y sincronizarlas con tu base de datos de usuarios interna mediante la API Directory del SDK de administrador. Al sincronizar tus contraseñas, deberías saber cómo se autentican los usuarios mediante la URL de acceso del panel de control de administrador.
Descripción del inicio de sesión único (SSO) basado en SAML proporcionado por partners
En la Figura 1 se muestra el proceso por el que un usuario inicia sesión en una aplicación de Google, como Gmail, a través de un servicio de SSO basado en SAML gestionado por un partner. En la lista numerada que sigue a la imagen se detalla cada paso.
Importante: Para que se pueda realizar este proceso, el partner debe facilitar a Google la URL para su servicio de SSO, así como la clave pública que Google debería usar para verificar las respuestas SAML.
Figura 1: El proceso de inicio de sesión en Google mediante un servicio de SSO basado en SAML.
En esta imagen se describen los pasos siguientes.
- El usuario intenta acceder a una aplicación alojada en Google, como Gmail, Google Calendar u otro servicio de Google.
- Google genera una solicitud de autenticación SAML, que se codifica y se inserta en la URL del servicio de SSO del partner. El parámetro RelayState, que contiene la URL codificada de la aplicación de Google a la que el usuario intenta acceder, también está insertado en la URL de SSO. Este parámetro es un identificador opaco que se devuelve sin modificaciones ni inspecciones.
- Google envía un redireccionamiento al navegador del usuario. La URL de redireccionamiento incluye la solicitud de autenticación SAML codificada que debería enviarse al servicio de inicio de sesión único del partner.
- El navegador redirige a la URL de SSO.
- El partner descodifica la solicitud SAML y extrae la URL del servicio de consumidor de aserciones (Assertion Consumer Service, ACS) de Google y la URL de destino del usuario (parámetro RelayState).
- A continuación, el partner autentica al usuario. Los partners pueden autenticar a los usuarios solicitando credenciales de acceso válidas o comprobando que existen cookies de sesión correctas.
- El partner genera una respuesta SAML que contiene el nombre de usuario del usuario autenticado. Según las especificaciones de la versión 2.0 de SAML, esta respuesta se firma digitalmente con las claves DSA/RSA públicas y privadas del partner.
- El partner codifica la respuesta SAML y el parámetro RelayState y, a continuación, devuelve esa información al navegador del usuario. El partner ofrece un mecanismo para que el navegador pueda reenviar esa información al servicio de ACS de Google. Por ejemplo, el partner podría insertar la respuesta SAML y la URL de destino en un formulario y facilitar un botón para que el usuario pueda hacer clic en él y enviar el formulario a Google. El partner también podría incluir JavaScript en la página para que se envíe el formulario a Google.
- El navegador envía una respuesta a la URL ACS. El servicio ACS de Google verifica la respuesta SAML usando la clave pública del partner. Si la respuesta se verifica correctamente, el servicio ACS redirige al usuario a la URL de destino.
- El usuario ha iniciado sesión en la aplicación de Google.