Los tokens web JSON (JWT) se han convertido en una norma esencial para la autenticación segura y el intercambio de información entre sistemas. Los JWT, puede transmitir datos de forma segura, verificable y estandarizada, lo que reduce la complejidad al tiempo que mejora la seguridad. En particular, los JWT son esenciales cuando se trabaja con OpenID Connect, donde le permiten validar y decodificar la información devuelta por el proveedor OpenID.
En 4D 21, 4D NetKit ofrece una API sencilla para manejar estos tokens: decodificación, generación y validación.
¿Cuándo su aplicación recibe un JWT?
Un JWT se recibe normalmente durante los procesos de autenticación o autorización. Algunos ejemplos son:
-
Después de que un usuario inicie sesión a través de un proveedor OpenID Connect.
-
Cuando una API externa devuelve un token para conceder acceso a sus recursos.
-
En la comunicación entre servicios, cuando un servidor emite un JWT para que otro servicio verifique la identidad o los permisos.
En todos estos escenarios, su aplicación debe decodificar y validar el token antes de utilizarlo.
Descodificación y validación de un JWT
Cuando su aplicación recibe un JWT, normalmente se requieren dos pasos:
- Decodificar el token para inspeccionar su contenido (claims).
- Validarlo para asegurarse de que no ha sido alterado y que realmente proviene de una fuente de confianza.
var $JWT:=cs.NetKit.JWT.new()
// Decode the JWT token: this method extracts the token’s contents
// (such as header, payload, and signature) without necessarily verifying its validity
var $result := $JWT.decode($token)
// Validate the token: this step checks that the token is correctly signed with the provided key
var $isValid:= $JWT.validate($token; $key)
Generación de un JWT
Además de descodificar y validar, puede que necesite generar sus propios JWT. Por ejemplo, al crear un sistema que emite tokens a los clientes, o al crear un token para autenticarse con una API externa.
// Define the JWT claims object, starting with the header
var $claims:={header: {alg: "HS256"; typ: "JWT"}}
// Define the payload (the data carried by the token)
$claims.payload:={sub: "123456789"; name: "John"; exp : 50}
// Generate the JWT token using the claims and a private key
// The resulting token ($token) will be a signed string that can be sent securely
var $token := cs.NetKit.JWT.new().generate($claims; $privateKey)
Esto produce un token firmado listo para asegurar sus intercambios.
Conclusión
La clase NetKit. JWT ofrece a 4D 21 una API sencilla para descodificar, validar y generar tokens. Ayuda a los desarrolladores a implementar flujos de autenticación seguros, integrarse con proveedores OpenID y crear aplicaciones modernas basadas en estándares.
Por el momento, no se pueden publicar comentarios en esta entrada.