Skip to main content

Proveedor de Identidad

En un Sistema de Gestión de identidad y accesos conviven al menos dos partes, por un lado la validación de identidad (Validar que yo sea yo) y la gestión de accesos.

En este apartado nos enfocaremos en la gestión de identidad y sus conceptos.

¿Comó opera un proveedor de identidad?

Un proveedor de identidad en su forma mas simple, es un autorizador o entidad certiticadora (issuer) que se encarga de validar una identidad por medio de un sistema de autenticación propietaria, y basicamente nos asegura que la identidad a validar existe o no existe en sus sistema de acuerdo a una serie de procesos probatorios establecidos por ellos.

Algunos ejemplos de provedores de autenticación populares son:

  • Facebook: Permite identificarse con una cuenta social de meta (facebook , instagram , etc).
  • Microsoft: Nos permite identificarnos con nuestra cuenta corporativa de red o a través de nuestro email corporativo.
  • Google: Proveedor de autenticación social de google.

Flujo dentro de un contexto de IAM

Para que un proveedor de identidad opere dentro de un IAM , es necesario que este responda al menos a dos solicitudes importantes descritas en el siguiente diagrama:

Solicitud inicial donde se invoca al proveedor de identidad para iniciar un dialogo web donde se presentara el sistema de autenticación propietaria que guiara a la identidad a comprobar como valida por el procesos de validación que asegure que la identidad existe y es valida en sus sistemas.

Example banner

note

El proceso de validación de identidad ocurre internamente a través del proveedor de autenticación y no es de alcance del IAM interrumpir o modificar de forma parcial o total algun punto del proceso.

Fase de Respuesta

En esta fase, es en donde se intercambia la información de exito o error del proveedor, acompañado con la información de la identidad y algún secreto o estado de intercambio que nos permita validar que la respuesta es valida y viene del origen correcto.

En esta fase , la recomendación por lo general en protocolos como OAuth 2.0 , es utilizar URI fragment para obtener la información de identidad que se utilizara para producir un token JWT que identifique a la identidad de forma única.

Una URL exitosa de ejemplo sobre lo anterior puede ser:

https://callback.cencox.yz/#access_token=[ACCESS_TOKEN]&state=[STATE]

donde:

  • https://callback.cencox.yz/ es la dirección url de redirección (comunmente agregada en la configuración requerida por el proveedor de identidad).

  • #access_token=[ACCESS_TOKEN] es el token de acceso entregado por el proveedor de identidad con la información segura de intercambio dispuesta por el proveedor de identidad.

  • state=[STATE] es una variable de intercambio que se envia en la fase de dialogo y es devuelta en cada en cada solicitud posterior a ella.


Mientras que por el contrario una URL fallida de ejemplo uede ser:

https://callback.cencox.yz/#code=[CODE]&state=[STATE]

donde:

  • https://callback.cencox.yz/ es la dirección url de redirección (comunmente agregada en la configuración requerida por el proveedor de identidad).

  • #code=[CODE] es un codigo de error que identifica de forma única el tipo de error que ocurrio en el proceso de validación de identidad.

  • state=[STATE] es una variable de intercambio que se envia en la fase de dialogo y es devuelta en cada en cada solicitud posterior a ella.

info

la variable state en los parametros URI se usa comunmente para evitar ataques de manipulación ya que se envia desde la primera llamada (fase de dialogo) y es devuelta en cada solicitud posterior a ella.

Comunmente esta variable contiene datos que identifiquen la sesión de forma única junto con algun mecanismo que asegure la no manipulación de los datos (generalmente se crea un objeto y se firma con una llave secreta o certificado que es solo de conocimiento del sistema integrador y no es enviada al proveedor de identidad)