Autenticación JWT

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Soluciones incrustadas en páginas web > Autenticación >

Autenticación JWT

La autenticación de soluciones incrustadas en páginas web también se puede llevar a cabo usando tokens JSON Web. Básicamente la autenticación JWT se procesa fuera del sistema de autenticación de MobileTogether Server. En el servidor los tokens JSON Web se verifican y se analizan para identificar al usuario. Si los tokens JSON Web son válidos, la comunicación entre la solución incrustada y el servidor continúa para el usuario especificado por los tokens JSON Web.

 

A continuación se ilustra el funcionamiento de la autenticación JWT.

Clic para ampliar

 

Debe tener en cuenta algunos aspectos de la autenticación JWT:

 

El servidor de autenticación y el servidor de aplicación (www) no tienen por qué estar separados.
El implementador es el encargado de definir el escenario donde se utiliza la solución incrustada y el sistema de autenticación que se utiliza.
Cuando se crea una autenticación JWT (cuando el usuario se acredita correctamente), se define un parámetro que especifica el usuario. Si el usuario especificado por medio del parámetro corresponde a uno de los usuarios que están configurados en MobileTogether Server, entonces el acceso al servidor viene determinado por los permisos que tiene asignado dicho usuario. Si se trata de otro usuario, se importará a la lista de usuarios configurados pero sus permisos se deberán configurar después en MobileTogether Server.
El implementador introduce el secreto compartido o la clave pública en la página Opciones de MobileTogether Server. El secreto compartido es la misma cadena de caracteres que el implementador usa para generar los tokens JSON Web en el servidor de autenticación. La clave pública es la que corresponde a la clave privada que sirve para cifrar los tokens JSON Web.
Los tokens JSON Web se pasan al IFrame y se pasan junto con la primera llamada que haga la solución a MobileTogether Server.
En MobileTogether Server el secreto compartido o la clave pública de la página Opciones de MobileTogether Server se utilizan para verificar los tokens JSON Web entrantes.
Cuando se verifiquen los tokens JSON Web entrantes, se establecerá una sesión de comunicación de autenticación entre la solución que está en el IFrame y MobileTogether Server.
El usuario para la sesión será el usuario que especifique la autenticación JWT.

 

¿Qué es JWT?

JWT es un conjunto de notificaciones (pares de propiedad/valor JSON) que conforman un objeto JSON. El token JSON Web se compone de tres partes:

 

Encabezado: compuesto por dos propiedades: { "alg": "HS256", "typ": "JWT" }. alg es el algoritmo que sirve para cifrar el JWT.
Carga: aquí se almacenan los datos que se deben enviar. Los datos se almacenan como pares propiedad/valor JSON.
Firma: se crea mediante cifrado con el algoritmo especificado en el encabezado: (i) el encabezado cifrado en base64Url, (ii) la carga cifrada en base64Url y (iii) un secreto (o clave privada):

HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret|privateKey)

 

El JWT resultante está compuesto por tres partes y cada una de ellas está cifrada con base64Url y separa de la siguiente parte por un punto. Para más información consulte openid.net y jwt.io.

 

Claves simétricas y asimétricas

Un JWT se puede cifrar usando una clave simétrica (secreto compartido) o claves asimétricas (la clave privada de un par privado/público).

 

Clave simétrica: la misma clave sirve para el cifrado (cuando se crea el JWT) y el descifrado (MobileTogether Server usa la clave para verificar los JWT). La clave simétrica (también conocida como secreto compartido) se almacena en las opciones de configuración de MobileTogether Server.
Claves asimétricas: se usan claves diferentes para el cifrado (clave privada) y el descifrado (clave pública). La clave pública se almacena en las opciones de configuración de MobileTogether Server y sirve para verificar el JWT.

 

Probar la autenticación JWT

Para probar la autenticación JWT:

 

1.Cree sus propios tokens JSON Web en la herramienta Online JWT Builder de Jamie Kurtz (en el siguiente apartado se ofrecen instrucciones).
2.En el sitio web jwt.io verifique su clave: (i) introduzca el JWT cifrado en el panel Encoded; (ii) en el panel Verify Signature introduzca el secreto que usó para crear los tokens JSON Web. El depurador del sitio web le informará de que la firma está verificada.

 

Consulte también el ejemplo Autenticación JWT.

 


© 2019 Altova GmbH