¿En qué se diferencian SAML, OpenID y OAuth?


Aunque entrar en detalle llevará unos cuantos párrafos, la respuesta breve sería que son sistemas que facilitan el acceso unificado (single sign on) con los siguientes matices:

  • OpenID – Es un “single sign” para usuarios finales, tales como consumidores.
  • SAML – Es un “single sign-on” orientado a usuarios empresariales.
  • OAuth – Es una API (Application Programming Interface) de autorización entre aplicaciones.

OpenID es relativamente sencillo de utilizar y muy prometedor.  EADTrut desarrolló hace unos años un piloto de servidor de autenticación OpenID, que utilizaba el DNI electrónico como base de la autenticación SSL/TLS y que luego podía heredarse de forma muy sencilla en otros servidores (páginas web) que implementaran OpenID.  Se publicaron varias referencias  sobre el piloto, que resultó un éxito.

SAML

El Lenguaje de Marcado para Confirmaciones de Seguridad, conocido como SAML, (pronunciado como “sam-el”) es un estándar abierto que define un esquema XML para el intercambio de datos de autenticación y autorización. Usualmente las partes que intervienen en el intercambio son un proveedor de identidad (IdP – Identity Provider) y un proveedor de servicio. SAML es una especificación publicada por el comité OASIS (Security Services Technical Committee).

SAML inició su especificación en el año 2001, siendo su versión estable liberada en el año 2005, y es utilizado como elemento clave en sistemas centralizados de autenticación y autorización (Single Sign-On).

La especificación SAML define tres roles:

  • Principal
  • Proveedor de identidad
  • Proveedor de servicio.

En un escenario típico, el rol principal solicita un servicio al proveedor de servicios, quien a su vez solicita y obtiene en caso de éxito, una confirmación de identidad desde el proveedor de identidad. Teniendo como base la confirmación recibida, el proveedor de servicio puede tomar decisiones acerca del acceso autorizado a un usuario.

OpenID

OpenID es un estándar de identificación digital descentralizado, con el que un usuario puede identificarse en una página web a través de una URL (o un XRI en la versión actual) y puede ser verificado por cualquier servidor que soporte el protocolo.

En los sitios que soporten OpenID, los usuarios no tienen que crearse una nueva cuenta de usuario para obtener acceso. En su lugar, solo necesitan disponer de un identificador creado en un servidor que verifique OpenID, llamado proveedor de identidad o IdP (Identity Provider).

El proveedor de identidad puede confirmar la identificación OpenID del usuario al sitio que soporte este sistema y que confíe en el.

A diferencia de otras arquitecturas Single Sign-On, OpenId no especifica el mecanismo de autenticación. Por lo tanto, la seguridad de una conexión OpenId depende de la confianza que tenga el cliente OpenID en el proveedor de identidad. Si no existe confianza en el proveedor, la autenticación no será adecuada para servicios bancarios o transacciones de comercio electrónico, sin embargo el proveedor de identidad puede usar autenticación fuerte pudiendo ser usada para dichos fines.

OAuth

OAuth (Open Authorization) es un protocolo abierto, propuesto por Blaine Cook y Chris Messina, que permite autorización segura de una API de modo estándar y simple para aplicaciones de escritorio, móviles y web.

Para desarrolladores de consumidores, OAuth es un método para interactuar con datos protegidos y publicarlos. Para desarrolladores de proveedores de servicio, OAuth proporciona a los usuarios un acceso a sus datos al mismo tiempo que protege las credenciales de su cuenta. En otras palabras, OAuth permite a un usuario del sitio A compartir su información en el sitio A (proveedor de servicio) con el sitio B (llamado consumidor) sin compartir toda su identidad.

En relación con la gestión de identidad, hay, además otras tecnologías y organizaciones que merece la pena tomar en consideración, como OATH, Liberty Alliance, Kantara, Passport, o CardSpace

OATH

OATH (Initiative for Open Authentication) es una arquitectura abierta de autenticación robusta (Open Strong Authentication) basada en tokens efímeros de autenticación, en posesión del usuario y gestionados por hardware o por software. Agrupa a más de 30 fabricantes y sus especificaciones  están basadas en diversos estándares.

Liberty Alliance

El proyecto Liberty Alliance fue una organización que operó entre 2001 y 2009 para establecer estándares y buenas prácticas para la gestión de identidad en sistemas informáticos. Llegó a agrupar más de 150 organizaciones.

Definió marcos de interoperabilidad para la federación de identidades.

La iniciativa desembocó, junto con otras en la organización Kantara.

Kantara

Kantara es una asociación profesional sin fines de lucro orientada a impulsar los avances en aspectos técnicos y legales relacionados con la gestión digital de identidad, ubicada en Delaware.

Kantara unifica inciativas anteriores como Liberty Alliance, el proyecto DataPortability, el proyecto Concordia, la Internet Society, la Information Card Foundation, OpenLiberty.orgXDI.org.  Se anunció en junio de 2009.

Kantara no es un organismo de estandarización, pero envía propuestas y recomendaciones a este tipo de organismos, tales como  OASIS (Organization for the Advancement of Structured Information Standards), IETF (Internet Engineering Task Force),   ISO (International Organization for Standardization), o  ITU-T (ITU Telecommunication Standardization Sector, uno de los sectores de la International Telecommunication Union).

Microsoft Passport

Microsoft Passport está formado por dos servicios: un servicio de inicio de sesión único que permite que los miembros utilicen un único nombre y contraseña para iniciar sesión en un número creciente de sitios Web participantes y un servicio de cartera que los miembros pueden utilizar para realizar compras en línea rápidas y cómodas.

Con el tiempo ha evolucionado a Windows Live ID.

CardSpace

Windows CardSpace (cuyo código de proyecto interno era InfoCard), es un cliente de software destinado a su uso en el metasistema de gestión de identidad (Identity Metasystem) y como iniciativa de gestión de identidades ha sido cancelado.   Su punto fuerte era la interfaz de usuario, basada en tarjetas de información que permitían gestionar de forma sencilla y segura la identidad dependiendo de la aplicación y de los sitios web a los que se acede. Además, en su diseño se tuvieron en cuenta la resistencia a los ataques de “phishing” y las denominadas “7  leyes de la Identidad” de Kim Cameron.

2 pensamientos en “¿En qué se diferencian SAML, OpenID y OAuth?

    1. Jmcainzos

      Se me ocurre que se refiere a:
      “single sign”: entrada en una aplicación de forma sencilla. Entras en un servicio y el se encarga de preguntarle al IdP.
      “single sign on”: te indentificas una vez solamente en el sistema. A partir de ahí, cuando vaya a entrar en otras aplicaciones, el sistema hace la autenticación por ti y en tu nombre.

      De ahí que si la mayoría de aplicaciones soportan “single sign”, entonces un “single sign on” te permitirá moverte de una aplicación a otra, de forma transparente.

      Como no lo he escrito yo, no deja de ser una suposición.

      Responder

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s