Kong OAuth token authentication

Configure the OpenID Connect plugin to verify the tokens issued by Kong OAuth 2.0 plugin.

Here’s how Kong OAuth2 authentication works:

 
sequenceDiagram
    autonumber
    participant client as Client 
(e.g. mobile app) participant kong as API Gateway
(Kong) participant httpbin as Upstream
(upstream service,
e.g. httpbin) activate client activate kong client->>kong: Service with
access token deactivate client kong->>kong: load access token kong->>kong: verify kong
oauth token activate httpbin kong->>httpbin: request with
access token httpbin->>kong: response deactivate httpbin activate client kong->>client: response deactivate kong deactivate client

In this example, the OpenID Connect plugin will only accept a bearer token sent in a header, but you can also set the bearer_token_param_type parameter to body, query, cookie, or any combination of these values.

For a complete example of authenticating with Kong OAuth2 tokens using Keycloak, see the tutorial for configuring OpenID Connect with Kong OAuth2.

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)

  • A Consumer with Kong OAuth2 credentials

  • An OAuth2 plugin configured on the Service or Route that you want to secure

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!