Passing metadata in headers

The OpenID Connect plugin can pass claim values, tokens, JWKs, and the session identifier to the upstream service in request headers, and to the downstream client in response headers.

By default, the plugin passes an access token in an Authorization: Bearer $ACCESS_TOKEN header to the upstream service. You can change this header name in config.upstream_access_token_header.

The claim values can be taken from:

  • An access token
  • An ID token
  • An introspection response
  • A user info response

The following example assumes that the token payload contains the claim preferred_username, and that you want to pass it to an Authenticated-User upstream header.

Note: Setting config.client_auth to client_secret_post lets you easily test the connection to your IdP, but we recommend using a more secure auth method in production. You can use any of the supported client auth methods.

Prerequisites

  • A configured identity provider (IdP)

Environment variables

  • ISSUER: The issuer authentication URL for your IdP. For example, if you’re using Keycloak as your IdP, the issuer URL looks like this: http://localhost:8080/realms/example-realm

  • CLIENT_ID: The client ID that the plugin uses when it calls authenticated endpoints of the IdP.

  • CLIENT_SECRET: The client secret needed to connect to your IdP.

Set up the plugin

Something wrong?

Help us make these docs great!

Kong Developer docs are open source. If you find these useful and want to make them better, contribute today!