¿Qué es SAML y cómo funciona?
SAML (Secure Assertion Markup Language) es un tipo de estándar SSO (Single Sign-On). Define un conjunto de reglas/protocolos que permiten a los usuarios acceder a aplicaciones web con un solo inicio de sesión. Esto es posible porque estas aplicaciones (llamadas «proveedores de servicios») confían en todos los sistemas que verifican la identidad de los usuarios (llamados «proveedores de identidad»).
SAML es uno de los estándares dominantes en el mundo de la gestión de identidad federada (FIM), que proporciona capacidades de inicio de sesión único (SSO) en toda la web. Otros estándares incluyen OpenID, OAuth y JWT (tokens web JSON). Cada estándar fue creado y es mantenido por organizaciones separadas. SAML fue creado por OASIS[1], por ejemplo. Estas organizaciones tienen diferentes ideas sobre la mejor manera de implementar el inicio de sesión único, qué tecnologías e idiomas usar, etc. A pesar de sus diferencias técnicas, todos estos estándares comparten al menos dos objetivos comunes:
- Proporcione una experiencia de usuario agradable al otorgar acceso rápido y fácil a las aplicaciones con un solo inicio de sesión.
- Mejore la seguridad eliminando la necesidad de que las aplicaciones almacenen copias de las credenciales de los usuarios en sus propias bases de datos.
Ambos objetivos son simples y loables para la era actual de los negocios y la tecnología. Siga leyendo para saber cómo SAML logra estos objetivos y cómo puede desempeñar un papel en la estrategia de administración de identidades federadas de su organización.
Proveedores de SAML
Para comprender completamente cómo funciona SAML, comenzaremos explorando el concepto de proveedor de SAML. Un proveedor SAML es un servidor involucrado en la autenticación y autorización de un usuario durante una solicitud SAML. Específicamente, hay dos tipos de proveedores de SAML: proveedores de servicios (SP) y proveedores de identidad (IdP).
Los proveedores de servicios son los sistemas y aplicaciones a los que acceden los usuarios a lo largo del día. Antes de SSO, cada uno de ellos mantenía su propia base de datos de nombres de usuario y contraseñas. Cuantas más aplicaciones usaba una persona, más necesitaba recordar y administrar nombres de usuario y contraseñas. Este aumento en la cantidad de credenciales por usuario ha fomentado prácticas de administración de contraseñas no deseadas, como usar la misma contraseña en varios sitios web y servicios, e incluso escribir las contraseñas en notas adhesivas.
Con la llegada de los estándares SSO como SAML, los usuarios ya no necesitan recordar muchas contraseñas. Solo necesitan iniciar sesión en su proveedor de identidad una vez y luego tienen acceso a sus aplicaciones favoritas. La autenticación a partir de ese momento es automática y transparente para el usuario.
Un proveedor de identidad es el sistema que realiza la autenticación del usuario. Esta es la ubicación central donde las credenciales de los usuarios se almacenan y validan realmente. Una vez que un usuario inicia sesión en su proveedor de identidad, tiene acceso a sus aplicaciones habilitadas para SSO. Cuando un usuario abre una aplicación, el proveedor de identidad y el proveedor de servicios trabajan juntos para autenticar y autorizar al usuario, y luego otorgarle acceso, si es necesario.
La conversation qui se produit entre les fournisseurs d’identité et de service se fait via un message appelé assertion. Il s’agit d’un document XML créé par le fournisseur d’identité et vérifié par le fournisseur de services. Il est construit selon les normes SAML établies en 2005 lorsque la norme SAML2 a été finalisée par le consortium OASIS[2].
Les Assertions SAML
Une assertion SAML est le message que le fournisseur d’identité envoie au fournisseur de services. Il s’agit d’un document XML qui contient tous les détails pertinents de l’utilisateur final. Cela comprend leur identifiant unique, leur nom et tout attribut supplémentaire pouvant être requis par le fournisseur de services. Ces attributs sont parfois appelés «revendications». Les deux termes peuvent être utilisés de manière interchangeable.
Toutes les assertions sont signées avec un certificat X.509 par le fournisseur d’identité. Le fournisseur de services dispose d’une copie de l’empreinte digitale du certificat, qu’il utilise pour vérifier l’authenticité de l’assertion. Cela empêche les attaquants malveillants, qui n’ont pas le certificat, de falsifier des assertions et d’obtenir un accès non autorisé.
Exemple d’une Authentification SAML
Suivons un employé fictif, Bob Johnson, de son arrivée au travail au lancement de sa première application compatible SSO. Cela nous donnera une bonne idée de la façon dont SAML et SSO en général, fonctionnent au jour le jour.
Après avoir pris sa tasse de café du matin, Bob s’assoit à son bureau et se connecte à son ordinateur. Il ouvre ensuite son navigateur, dont la page d’accueil a été définie sur le portail SSO de sa société. Ce portail sert de fournisseur d’identité de Bob. Sur le portail, Bob présente les nombreuses applications dont il a besoin pour effectuer son travail.
Après mûre réflexion, Bob choisit d’ouvrir Salesforce en cliquant sur son icône dans le portail. C’est là que le processus d’authentification SAML commence.
Tout d’abord, la demande de Bob est acheminée vers Salesforce. Salesforce répond en demandant une authentification au fournisseur d’identité. Le fournisseur d’identité crée ensuite une assertion SAML qui contient les informations utilisateur de Bob, telles que son adresse e-mail et son nom. Il le signe ensuite avec un certificat qu’il possède dans le dossier et envoie l’assertion à Salesforce.
Une fois qu’il a reçu l’assertion SAML, Salesforce utilise sa copie de l’empreinte digitale du certificat pour vérifier que l’assertion est valide. S’il est valide et que Bob a un compte actif, il sera connecté à Salesforce.
El proceso de autenticación de identidad de Bob con el proveedor de identidad ocurre en segundo plano en milisegundos. Todas las experiencias de Bob son la facilidad de acceder a sus aplicaciones con un solo clic y la alegría de no tener que recordar muchos nombres de usuario y contraseñas diferentes.
¿Qué puede hacer SAML por usted?
SAML, y cualquier otra tecnología de identidad federada, sirve para hacer la vida de los usuarios más fácil y segura. Sin él, los usuarios se ven obligados a mantener diferentes credenciales para cada sitio que utilizan. Esta colección de credenciales es difícil de administrar y expone a los usuarios y sus organizaciones a atacantes maliciosos y al robo de identidad [3].
Al presentar una solución completa de inicio de sesión único para su organización, sus usuarios finales tendrán un acceso simplificado a las aplicaciones que necesitan todos los días. Esto reduce el tiempo de inactividad causado por contraseñas olvidadas y cuentas bloqueadas, lo que se traduce directamente en una mayor productividad y un aumento de la moral. Todo esto puede contribuir a un efecto positivo en los resultados de una empresa, lo que hace que invertir en tecnologías SSO sea un claro ganador en términos de ROI.
[1] https://www.oasis-open.org/
[2] https://www.oasis-open.org/< wbr />normas#samlv2.0
[3] http://citeseerx.ist.psu.edu/