TsgcHTTP_JWT_Server

Composant TsgcHTTP_JWT_Server.

Introduction

Le composant TsgcHTTP_JWT_Server vous permet de décoder et de valider les jetons JWT reçus dans la Handshake WebSocket lors de l'utilisation du protocole WebSocket ou comme en-tête HTTP lors de l'utilisation du protocole HTTP.

 

Configuration

Vous pouvez configurer les propriétés suivantes dans la propriété JWTOptions du composant :

 

Si la signature est validée à l'aide d'une clé publique (algorithmes RS et ES), définissez la valeur dans la propriété PublicKey de l'algorithme.

Si la signature est validée en utilisant un Secret (algorithmes HS), définissez la valeur dans la propriété Secret de l'Algorithm.

 

Pour valider les tokens JWT, il suffit d'attacher une instance TsgcHTTP_JWT_Server à la propriété Authentication.JWT.JWT du serveur WebSocket/HTTP.

 


    oServer := TsgcWebSocketHTTPServer.Create(nil);
    oServer.Port := 80;
    oJWT := TsgcHTTP_JWT_Server.Create(nil);
    oJWT.JWTOptions.Algorithms.RS.PublicKey.Text := 'public key here';
    oServer.Authorization.Enabled := True;
    oServer.Authorization.JWT.JWT := oJWT;
    oServer.Active := True;

 

Validations des revendications

Une fois la signature vérifiée, le serveur valide les revendications enregistrées du Payload. Les revendications exp, nbf et iat sont vérifiées, les versions antérieures ne vérifiaient que la signature, un jeton expiré était donc accepté. Une revendication absente du Payload n'est pas affirmée par l'émetteur et n'est pas validée.

 

Les vérifications se configurent dans la propriété JWTOptions.Validations :

 

Expiration : rejette le jeton lorsque la revendication exp est dans le passé. Activée par défaut, définissez Validations.Expiration := False pour désactiver la vérification d'expiration.

NotBefore : rejette le jeton lorsque la revendication nbf est dans le futur. Activée par défaut.

Issued : rejette le jeton lorsque la revendication iat est dans le futur. Activée par défaut.

Leeway : secondes de décalage d'horloge autorisées lorsque les revendications exp, nbf et iat sont comparées à l'heure actuelle. La valeur par défaut est de 60 secondes, définissez-la à zéro pour comparer les revendications sans aucune tolérance.

Référence