Aprender el lenguaje de los protocolos de identidad
Objetivos de aprendizaje
- Identificar los estándares de la industria empleados para la gestión de la identidad y el acceso.
- Conocer cómo SAML está relacionado con XML.
- Conocer la diferencia entre un proveedor de identidad y un proveedor de servicios.
Estándares y protocolos de identidad
A continuación aparecen tres protocolos que Salesforce y otros proveedores de identidad siguen para implementar soluciones de identidad.
- SAML
- OAuth 2.0
- OpenID Connect
Protocolo SAML
A continuación se describen un par de ejemplos de SAML en acción.
- Cuando inicia sesión en Salesforce y luego hace clic en el Iniciador de aplicación para pasar directamente a su bandeja de entrada de Gmail, ahí tiene un ejemplo de SAML en acción.
- Cuando los usuarios que ya iniciaron sesión en otra aplicación pueden acceder a su organización de Salesforce sin iniciar sesión de nuevo, eso es también SAML en acción.
Afirmación SAML
Así es como funciona SAML. Un usuario intenta acceder a un servicio. El proveedor de servicios envía una solicitud al proveedor de identidad preguntando básicamente “Oye, ¿puede este usuario acceder a mi servicio?”. El proveedor de identidad se asegura de que los usuarios son quienes dicen ser comprobando su base de datos y luego devolviendo una respuesta (una afirmación) que dice: “Sí, este usuario está autorizado, aquí entrego algo de información sobre el usuario”.
Espere un minuto. ¿Cuál es la diferencia entre un proveedor de identidad y un proveedor de servicios? Básicamente, el proveedor de identidad es el que autentica el usuario. El proveedor de servicios está solicitando la identidad autenticada. Hablaremos más sobre los proveedores de identidad y servicios más adelante en esta unidad.
La afirmación es la información que se envía. Una afirmación puede transportar información detallada sobre un usuario. También puede contener atributos acerca del usuario, como nombres y apellidos, información de contacto, quizás incluso los de trabajo.
SAML funciona en segundo plano. Sus usuarios no lo ven en absoluto. Solo hacen clic en un icono o vínculo y abren otra aplicación sin tener que proporcionar información adicional o iniciar sesión de nuevo. A veces su destino ya sabe algo sobre ellos (esos atributos de usuario) cuando llegan allí.
SAML y XML
SAML es un protocolo basado en XML, lo que significa que los paquetes de información que se intercambian están redactados en XML. XML se supone que es (casi) legible por los humanos, de modo que puede obtener una idea de lo que está ocurriendo. Eso es bueno cuando está intentando determinar si las cosas están funcionando correctamente.
El siguiente diagrama ilustra una parte de una afirmación SAML. ¿Le parece un sinsentido? Mire de nuevo y verá que no lo es tanto. Contiene información sobre el nombre de usuario, su número de teléfono y su nombre de pila.
En este ejemplo, la organización de Salesforce pasa la información del usuario a otra aplicación. La aplicación puede utilizar esa información para autorizar al usuario y personalizar la experiencia del usuario. Pero lo que es más importante, el usuario no tiene que iniciar sesión de nuevo para acceder a la aplicación.
Protocolo OAuth 2.0
A continuación se describen un par de ejemplos.
- Una aplicación móvil que extrae contactos de una organización de Salesforce utiliza OAuth.
- Una organización de Salesforce que obtiene contactos de otro servicio también utiliza OAuth.
A continuación aparece un ejemplo de una aplicación que solicita permiso al usuario para acceder a información empleando OAuth 2.0.
Protocolo OpenID Connect
El desarrollador de la aplicación utilizó el protocolo OpenID Connect para activar el inicio de sesión de redes sociales.
Por ejemplo, cuando Google verifica la identidad de un usuario en nombre de otro servicio, está autenticando al usuario. De esta manera, Google es un proveedor de identidad.
Salesforce acepta varios de los proveedores de identidad sociales más importantes, incluyendo Google, Facebook, y LinkedIn. Si un proveedor no se admite directamente, es posible utilizarlo si este implementa el protocolo OpenID Connect, como lo hacen Amazon y PayPal, por ejemplo.
La ventaja del protocolo OpenID Connect para los usuarios es que pueden reducir el número total de cuentas, nombres de usuario y contraseñas que deben recordar. Por otro lado, los desarrolladores pueden autenticar a sus usuarios en distintos sitios web y aplicaciones sin tener que tener la propiedad y la gestión de archivos de contraseñas. Este proceso hace que sea mucho más difícil para los hackers poner en peligro las cuentas de usuario.
Proveedores de servicios y proveedores de identidad
Los usuarios inician sesión desde un proveedor de identidad y luego se redireccionan a Salesforce (el proveedor de servicios). En otro módulo configurará SSO con Salesforce como proveedor de servicios y una aplicación externa como el proveedor de identidad externo.
Salesforce como proveedor de identidadFlujo SAML para SSO
- Un usuario intenta acceder a Salesforce.
- Salesforce reconoce la solicitud de SSO y genera una solicitud SAML.
- Salesforce redirige la solicitud SAML al explorador.
- El explorador redirige la solicitud SAML al proveedor de identidad externo.
- El proveedor de identidad verifica la identidad del usuario y empaqueta la afirmación SAML que contiene la autenticación de usuario.
- El proveedor de identidad envía la afirmación SAML al explorador.
- El explorador redirige la afirmación a Salesforce.
- Salesforce verifica la afirmación.
- Ahora el usuario ya ha iniciado sesión y puede acceder a Salesforce.
Hoja de referencia de terminología sobre Identity
Un término | que se confunde fácilmente con este término |
---|---|
Autenticación hace referencia a la identidad de una persona. En la actualidad, autenticación se utiliza a menudo como abreviatura de autorización y autentificación. | Autorización hace referencia a lo que una persona puede hacer. |
Protocolo especifica el conjunto de reglas que permiten a los sistemas intercambiar información. Normalmente, el término protocolo y estándar se utilizan indistintamente. | Estándar es una especificación, un conjunto de prácticas de la industria que los proveedores acuerdan apoyar. A menudo, un estándar contiene un protocolo para especificar el modo en que las empresas implementan el estándar. |
Nombre de usuario y contraseña son lo que el usuario proporciona para iniciar sesión en un sistema. | Credenciales son básicamente la misma cosa. |
Inicio de sesión único (SSO) permite a una persona iniciar sesión una vez y acceder a otras aplicaciones y servicios sin tener que iniciar sesión de nuevo. | Inicio de sesión en redes sociales permite a una persona iniciar sesión en una aplicación empleando las credenciales establecidas con una cuenta en redes sociales como Google. La aplicación acepta las credenciales de Google y el usuario no tiene que crear otra cuenta y contraseña. |
Proveedor de identidad es un servicio de confianza que permite a los usuarios acceder a otros sitios web y servicios sin iniciar sesión de nuevo. | Proveedor de servicios es un sitio web o servicio que aloja aplicaciones y acepta la identidad de un proveedor de identidad. |