Configuration - JSON Web Token

The ‘[jwt:<jct-id>]’ configuration stanza allows us to generate and insert a signed JSON Web Token (JWT) into a HTTP header of requests destined for the junctioned Web server. A generated JWT is valid for the lifetime of the WebSEAL user session.

When configuring the JWT support the following information is required:

  1. The label of the key which will be used to sign the generated JWT. This key must exist within the keyfile used for communication with the junctioned servers (defined by either the ‘jct-cert-keyfile’ or ‘webseal-cert-keyfile’ configuration entries). The key identifier field (kid) in the JWT header contains this key label and identifies the key which should be used to verify the JWT;

  2. The list of claims (or attributes) which should be added to the JWT. The claim can either be a literal string or can be obtained from specified credential attributes. The following standard claims will be automatically added to each generated JWT:

    1. nbf (not-before): This attribute is set to the current time, less 120 seconds.
    2. iat (issued-at): This attribute is set to the current time.
    3. exp (expiration-time): This attribute is set to the time at which the user session expires (lifetime).
    4. jti (jwt-id): This attribute will be set to a random UUID.

  3. The name of the HTTP header which contains the generated JWT.

An example configuration, for the ‘/app’ junction would be:

Refer to the ‘[jwt:<jct-id>]’ stanza

Parent topic: JSON Web Tokens in HTTP Headers