Les jetons Web JSON (JWT) sont devenus une norme essentielle pour l’authentification sécurisée et l’échange d’informations entre systèmes. Les JWT permettent de transmettre des données de manière sécurisée, vérifiable et normalisée, ce qui réduit la complexité tout en améliorant la sécurité. En particulier, les JWT sont essentiels lorsque vous travaillez avec OpenID Connect, où ils vous permettent de valider et de décoder les informations renvoyées par le fournisseur OpenID.
Dans le cadre de 4D 21, 4D NetKit fournit une API simple pour gérer ces jetons : décodage, génération et validation.
Quand votre application reçoit-elle un JWT ?
Un JWT est généralement reçu lors des processus d’authentification ou d’autorisation. Voici quelques exemples :
-
Lorsqu’un utilisateur se connecte via un fournisseur OpenID Connect.
-
Lorsqu’une API externe renvoie un jeton pour accorder l’accès à ses ressources.
-
Dans le cadre d’une communication interservices, lorsqu’un serveur émet un JWT pour un autre service afin de vérifier l’identité ou les autorisations.
Dans tous ces scénarios, votre application doit décoder et valider le jeton avant de l’utiliser.
Décodage et validation d’un JWT
Lorsque votre application reçoit un JWT, deux étapes sont généralement nécessaires :
- Décoder le jeton pour inspecter son contenu (revendications).
- Levalider pour s’assurer qu’il n’a pas été modifié et qu’il provient bien d’une source fiable.
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)
Générer un JWT
Outre le décodage et la validation, vous pouvez être amené à générer vos propres JWT. Par exemple, lorsque vous créez un système qui émet des jetons aux clients, ou lorsque vous créez un jeton pour vous authentifier auprès d’une API externe.
// 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)
Vous obtenez ainsi un jeton signé prêt à sécuriser vos échanges.
Conclusion
La classe NetKit.JWT fournit à 4D 21 une API simple pour décoder, valider et générer des jetons. Elle aide les développeurs à mettre en œuvre des flux d’authentification sécurisés, à s’intégrer aux fournisseurs OpenID et à créer des applications modernes basées sur des normes.
Les commentaires ne sont pas disponibles pour cet article pour le moment.