Overview
This provides describes overview of JWT Response for OAuth Token Introspection and instructions on how to configure services and resource servers to enable the feature.JWT Response for OAuth Token Introspection feature has been available since Authlete 3.0.
Introduction
Below is a diagram that roughly illustrates token introspection flow in JWT Response for OAuth Token Introspection.
Token Introspection Flow in JWT Response for OAuth Token Introspection
1. Introspection Request
First, the resource server sends an introspection request to the authorization server including an HTTP Accept header set to “application/token-introspection+jwt”. The header value indicates that the resource server is requesting a JWT introspection response from the authorization server.2. Authenticate Resource Server
Once the introspection request is accepted, the authorization server must authenticate the resource server. If the authentication succeeds, the authorization server then retrieves the necessary information about the resource server (e.g. the resource server’s URI, the sign algorithm for JWT introspection responses, etc), which is required for signing/encrypting introspection responses.3. Request to Authlete /auth/introspection/standard API
Then, the authorization server calls Authlete /auth/introspection/standard API including the resource server’s information obtained in step 2.4. Response from Authlete /auth/introspection/standard API
If the request is valid, Authlete returns an API response including a JWT introspection response. The authorization server is then expected to return this response to the resource server.5. JWT Introspection Response
After receiving a successful API response from Authlete, the authorization server returns the JWT introspection response, contained in the Authlete API response, back to the resource server.Service configuration Configure your service (authorization server) as below.
| Property | Description |
|---|---|
| JWK Set | NOTE: This configuration is only required if “JWK Set” is used. Set a JWK set containing at least one sign key for JWT introspection responses. |
| JWK Set Endpoint URI | NOTE: This configuration is only required if “JWK Set Endpoint URI” is used. Set a URI that starts with https. The URI needs to point to a JWK set containing at least one sign key for JWT introspection responses. |
Resource server information
Below is information about your resource server that your authorization server needs to pass to Authlete at runtime after authenticating it.| Property | Description |
|---|---|
| resource server URI | Required. The URI of the resource server making the introspection request. |
| JWS alg algorithm | Optional. The JWS alg algorithm for signing the introspection response. This parameter corresponds to introspection_signed_response_alg defined in “6. Client Metadata” of “JWT Response for OAuth Token Introspection”. The default value is RS256. |
| JWE alg algorithm | Optional. The JWE alg algorithm for encrypting the introspection response. This parameter corresponds to introspection_encrypted_response_alg defined in “6. Client Metadata” of “JWT Response for OAuth Token Introspection”. If the this property is specified, Authlete generates a JWT introspection response encrypted with the algorithm specified by this property and the algorithm specified by the JWE enc algorithm. |
| JWE enc algorithm | Optional. The JWE enc algorithm for encrypting the introspection response. This parameter corresponds to introspection_encrypted_response_enc defined in “6. Client Metadata” of “JWT Response for OAuth Token Introspection”. The default is A128CBC_HS256. |
API call test
In this section, we simulate API calls that the authorization server sends to Authlete on access token introspection. Suppose the resource server sends an introspection request to the authorization server, requesting a JWT introspection response. The request would look as follows.NOTE: We also need to send the value of the HTTP Accept Header in the original introspection request.