Passing parameters through JWT in a request to /authorize

Security Verify Access OIDC Providers support passing request parameters by way of a JWT in a request to /authorize.

The support satisfies the requirements in Section 6.1 of the OpenID Connect Core specification https://openid.net/specs/openid-connect-core-1_0.html.

Deployments such as web banking applications require integration with strong authentication as offered by a third party. This scenario requires that clients avoid providing claims directly in a query string. By sending the claims in a JSON Web Token (JWT), the client proves that it signed them with an established secret. ISAM supports this function by providing decryption of OIDC ID tokens that are received with the authorization code grant flow from a third-party OpenID Provider. The received tokens are signed (for example, by presenting a JWT that uses the JWS algorithm RS256) and encrypted (for example, by use of the content encryption algorithm AES128CBC-HS256 and key agreement algorithm of RSA-OEAP). See https://tools.ietf.org/html/rfc7518.

A request JWT can be used to provide incoming request parameters. The specification requires the OAuth request parameters must still contain client_id and response_type, but all other parameters, such as redirect_uri, and scope, can be provided only in the request JWT. The client_id and response_type can also be presented in the request JWT, but the values of each must match those that are provided in the OAuth request parameters.

To configure an STS chain that is compatible with incoming JWT request parameters, the chain must meet the same requirements as required for handling client assertions:

  1. No token type is set.
  2. RequestType of Validate is accepted.

Examples of ISSUER and APPLIESTO fields that handle all presented client assertions are as follows:

In the example above, all clients match with this chain. (Note the .* value in the regexp for the Issuer.) If a particular chain is needed, then use the issuer:urn:ietf:params:oauth:client-assertion-type:jwt-bearer:myClient where myClient is the client_id of the interested client.

The claims are mapped into the request. Validation occurs on request_type and client_id, as required by the specification:


Parent topic: OAuth 2.0 and OIDC support