GenerateJWTTokenVavle

Generates a JSON Web Token, JWT. Typically used in OpenID Connect scenarios.

Properties

Name Description Default value Mandatory Supports property expansion
subjectattribute Attribute holding the value put into the sub of the token. true true
keystore ID of the keystore used for signing the token. true false
expire_seconds Number of seconds the jwt token is valid (exp time will be now + this) 90 false false
claims Claims to be included in the token. Array of claim objects, see below for format. (Previously called tokenattributes, name still supported) false true

Claim

Which claims to be included in the token are controlled by the claims (or tokenattributes) configuration property containing an array of claim objects. A claim object has a name (name of claim), a value (value of claim, supports property expansion) and a type (claim value target type).

Claim value must be expanded to a string but may contain any string encoded json. When value is added to the claim it is converted to the configured type.

Supported types:

  • string (default)
  • object
  • array
  • number (double value)
  • integer/int
  • boolean/bool
  • null


Example claim - array of strings:

{
    "name": "roles"
    "value": "[\"admin\",\"manager\",\"user\"]",
    "type": "array"
}


Example claim - objects:

{
    "name": "keys"
    "value": "{
        \"key_1\": \"value_1\",
        \"key_2\": \"value_2\",
        \"key_3\": \"value_3\",
    }",
    "type": "object"
}



Example Configuration

{      
    "name": "GenerateJWTTokenVavle",
    "enabled": "true",
    "config": {
        "subjectattribute" : "{{session.user_id}}",
        "keystore" : "d2c3094d-f538-4abc-9211-cd26c46606d3",
        "expire_seconds" : "600",
        "tokenattributes":[{
            "name":"displayName",
            "value":"{{item.displayName}}"
        }]
    }
}

Requirements

General information

Token TTL is 90 seconds by default.

Attributes always added to the payload are:

  • sub - the user identifier
  • iat - Issued at
  • nbf - Not before
  • exp - Expiration
  • jti - Token identifier

Sign algo is RS256.

Dates are formatted according to:

Value representing the number of seconds from 1970-01-01T00:00:00Z UTC
until the specified UTC date/time, ignoring leap seconds.