Webové tokeny JSON (JWT) se staly klíčovým standardem pro bezpečné ověřování a výměnu informací mezi systémy. Pomocí JWT můžete přenášet data bezpečným, ověřitelným a standardizovaným způsobem, což snižuje složitost a zároveň zvyšuje bezpečnost. JWT jsou nezbytné zejména při práci s OpenID Connect, kde umožňují ověřovat a dekódovat informace vrácené poskytovatelem OpenID.
V rámci 4D 21 poskytuje 4D NetKit jednoduché API pro práci s těmito tokeny: dekódování, generování a ověřování.
Kdy vaše aplikace obdrží JWT?
Token JWT je obvykle přijímán během procesů ověřování nebo autorizace. Mezi příklady patří např:
-
Po přihlášení uživatele prostřednictvím poskytovatele OpenID Connect.
-
Když externí rozhraní API vrátí token pro udělení přístupu ke svým zdrojům.
-
Při komunikaci mezi službami, kdy jeden server vydá JWT pro jinou službu, aby ověřil identitu nebo oprávnění.
Ve všech těchto scénářích musí aplikace před použitím tokenu tento token dekódovat a ověřit.
Dekódování a ověřování JWT
Když vaše aplikace obdrží JWT, jsou obvykle nutné dva kroky:
- Dekódování tokenu za účelem kontroly jeho obsahu (nároků).
- Ověření jehoplatnosti, aby se zajistilo, že nebyl změněn a že skutečně pochází z důvěryhodného zdroje.
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)
Generování JWT
Kromě dekódování a ověřování může být nutné vygenerovat vlastní tokeny JWT. Například při vytváření systému, který vydává tokeny klientům, nebo při vytváření tokenu pro ověření pomocí externího rozhraní API.
// 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)
Tímto způsobem vytvoříte podepsaný token připravený k zabezpečení vašich výměn.
Závěr
Třída NetKit. JWT poskytuje 4D 21 jednoduché API pro dekódování, ověřování a generování tokenů. Pomáhá vývojářům implementovat bezpečné autentizační toky, integrovat se s poskytovateli OpenID a vytvářet moderní aplikace založené na standardech.
K tomuto příspěvku zatím nelze přidávat komentáře.