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 APIs. Las APIs se han convertido en una pieza clave del engranaje porque abren posibilidades antes poco exploradas.
5 min lectura
APIs , Ciberseguridad / 21 noviembre 2018
La nueva identidad digital gracias a las APIs
La nueva identidad digital gracias a las APIs

BBVA API Market

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 APIs. Las APIs se han convertido en una pieza clave del engranaje porque abren posibilidades antes poco exploradas.

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. 

BBVA Connect es otro ejemplo de la utilidad de las APIs para la gestión de la identidad. BBVA Connect facilita la experiencia de los clientes del banco en páginas webs o aplicaciones de terceros, asociados con la entidad. Gracias a las APIs, los clientes tienen la opción de compartir sus datos de forma segura e inmediata (sin necesidad de ceder a la aplicación tercera las credenciales de la banca online, siempre gestionadas y custodiadas por BBVA) y los procesos de registro son ágiles y sencillos.

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í.

También podría interesarte