Identidad digital gracias a las APIs

La nueva identidad digital gracias a las APIs

Gran parte de los protocolos de autenticación de usuarios en la nueva era digital, tanto soluciones propietario en manos de empresas como IBM u Oracle, o abiertas como OpenID y OAuth 2.0 están basadas en interfaces de desarrollo de aplicaciones (APIs). 

BBVAOpen4U
|
07 Feb. 2018

La creación de productos de software tiene numerosos aspectos delicados, uno de ellos a buen seguro es la gestión de la identidad (Identity Management - IDM), sobre todo cuando se producen cambios por parte del usuario. Procesos de registro o acceso, modificaciones de información personal… Cualquier elemento dentro de esa gestión puede convertirse en un auténtico quebradero de cabeza para los desarrolladores, en un entorno volátil y con implicaciones en seguridad, donde los robos de identidad son espinosos en sectores como el bancario.

En todo este escenario, las APIs se han convertido en una pieza clave del engranaje porque abren posibilidades antes poco exploradas: por un lado facilitan los procesos de autenticación o, incluso, se convierten en el centro de toda la operativa de negocio. Un ejemplo son las APIs vinculadas a redes sociales como Facebook o Twitter, a partir de las cuales se gestionan los datos personales de todos los perfiles. Las interfaces de desarrollo de aplicaciones tienen implicaciones en la personalización de las plataformas y la creación de ingresos por publicidad

La identidad digital es un paraguas que abarca una gran cantidad de negocios o campos de producción de software: directorios, tarjetas digitales, proveedores de servicios y proveedores de identidad, procesos de autenticación mediante tokens de acceso, administración de contraseñas, control de registro y acceso, OpenID (estándar de autenticación de código abierto de la OpenID Foundation), OAuth (concretamente OAuth 2.0.), SAML (SAML 2.0.), Single sign-on… Son numerosos los ejemplos de protocolos y estándares de identidad digital, que permiten tanto la propia formación de esa identidad como su protección. 

Las APIs y la identidad digital

Dentro de la gestión de la identidad y de cómo las APIs han facilitado ese proceso, SCIM (System for Cross-domain Identity Management) es un estándar que en 2011 marcó un camino a seguir. No fue un estándar que revolucionara la industria de la identidad digital, pero sí pone encima de la mesa una ordenación de las mejores prácticas del sector en esta materia. Empresas como Ping Identity, SailPoint, Nexus Group y UnboundID se aliaron con proveedores en la nube como Google, Cisco o Salesforce (uno de los grandes CRM-Customer Relationship Management) para lanzar y promover el protocolo de gestión de identidad en la nube simple.

El Sistema de Gestión de Identidad entre Dominios está diseñado para facilitar ese proceso en aplicaciones que están basadas en esa nube. El objetivo de SCIM es simplificar el desarrollo y la integración de los procesos de autenticación y autorización con plataformas o sistemas ya existentes. El estándar busca una mayor rapidez, un menor coste y una mayor facilidad a la hora de identificar y mover perfiles de usuario dentro y fuera de aplicaciones basadas en la nube. 

SCIM está cimentado en una API REST que gestiona información en formato JSON. La API utiliza llamadas habituales como POST (creación de un usuario), GET (leer la información del perfil de un usuario), PUT (sustituir la información personal), DELETE (suprimir el usuario); o PATCH (actualizar los datos del perfil de usuario): 

Create = POST https://example.com/{v}/{resource}

Read = GET https://example.com/{v}/{resource}/{id}

Replace = PUT https://example.com/{v}/{resource}/{id}

Delete = DELETE https://example.com/{v}/{resource}/{id}

Update = PATCH https://example.com/{v}/{resource}/{id}

¿Cómo se codifican los datos de cada usuario en formato JSON? Aquí un ejemplo de objetos SCIM con atributos simples como las cadenas de identificación y nombre de usuario; o atributos complejos como la dirección, email, número de teléfono…  

{

  "schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:User" ],
  "id" : "2819c223-7f76-453a-919d-413861904646" ,
  "externalId" : "bjensen" ,
  "meta" :{
    "resourceType" : "User" ,
    "created" : "2011-08-01T18:29:49.793Z" ,
    "lastModified" : "2011-08-01T18:29:49.793Z" ,
    "location" : "https://example.com/v2/Users/2819c223..." ,
    "version" : "W\/\"f250dd84f0671c3\""
  },
  "name" :{
    "formatted" : "Ms. Barbara J Jensen, III" ,
    "familyName" : "Jensen" ,
    "givenName" : "Barbara" ,
    "middleName" : "Jane" ,
    "honorificPrefix" : "Ms." ,
    "honorificSuffix" : "III"
  },
  "userName" : "bjensen" ,
  "phoneNumbers" :[
    {
      "value" : "555-555-8377" ,
      "type" : "work"
    }
  ],
  "emails" :[
    {
      "value" : "bjensen@example.com" ,
      "type" : "work" ,
      "primary" : true
    }
  ]
}

Identidad digital y las soluciones de código abierto

Una de las debilidades de los procesos de identificación digital era el enorme desgaste que se infringía en los usuarios que deseaban autenticarse en varios servicios o plataformas a la vez. Cada proceso de ingreso exigía distintas identidades. Surge así la necesidad de crear protocolos de autenticación centralizada y gestión de políticas. Inicialmente, algunas empresas como IBM u Oracle lanzaron herramientas propietarias (IBM Tivoli Access Manager u Oracle Access Manager). Pero más tarde llegaron protocolos abiertos o de código abierto.

En el marco del opensource destacan OpenID Connect y OAuth 2.0, dos soluciones que han introducido un antes y un después en la gestión de la identidad y los procesos de autenticación en el desarrollo del software. Han permitido la independencia de soluciones de pago e impulsado la democratización a bajo coste. Tanto es así que sectores con un enorme porvenir como el Internet de las Cosas han apoyado gran parte de su desarrollo en protocolos abiertos como OAuth 2.0. 

- OpenID Connect: un protocolo abierto que apuesta por la autenticación única de los usuarios y que forma parte de las especificaciones de OAuth 2.0. Permite a los desarrolladores autenticar a usuarios en sitios web a través del navegador (JavaScript) y aplicaciones móviles nativas sin la necesidad de asumir la responsabilidad del almacenamiento y gestión de contraseñas, con todo lo que eso conlleva de asunción de los efectos de perder esa información. Es un proceso de identificación fácil y garantizado. OpenID usa llamadas HTTP y formato JSON para identificar usuarios.

Las especificaciones de OpenID se lanzaron en febrero de 2014 y el programa de certificación OpenID Connect se publicó en abril de 2015. Detrás de ese programa hay compañías tan conocidas como Google, Microsoft, Ping Identity, ForgeRock, Nomura Research Institute o Paypal

OAuth 2.0: este marco de protocolo ha supuesto una auténtica revolución dentro de los procesos de gestión de identidad digital en el desarrollo de software. Facilita de una forma sencilla y garantizada un acceso limitado a un servicio HTTP por parte de aplicaciones de terceros, sin necesidad de nombres de usuario y contraseña, a través de token de acceso. Eso es lo que permite no poner en riesgo el uso de los recursos por otros proveedores o clientes cuando se vulnera una contraseña. OAuth 2.0 está disponible para aplicaciones web, aplicaciones de escritorio, teléfonos móviles… Además, este protocolo de autenticación es usado por la mayoría de empresas del sector tecnológico (Google, Twitter, Facebook…) y del Internet de las Cosas. 

Si quieres probar las APIs de BBVA, testéalas aquí.

¡Suscríbete!

Recibe nuestro boletín semanal. No te pierdas nuestros trucos, consejos, artículos y los eventos más innovadores.