Docs
Plugin HubCategoriesAuthenticationOpenID ConnectChangelog

OpenID Connect Changelog

Released changes to the OpenID Connect plugin (`openid-connect`), newest release first.

75 released changes name openid-connect, newest release first — 23 in Apache APISIX, 52 in API7 Gateway. Each row links to the change itself.

Apache APISIX

ReleaseDateTypeChange
3.18.02026-08-18FeatureAdd the set_raw_id_token_header option
3.18.02026-08-18FixEnforce audience, issuer and required scopes. Bearer introspection fails closed when the discovery document is unavailable, claim_validator.audience.match_with_client_id now implies requ…
3.18.02026-08-18FixHandle temporarily_unavailable error redirects from the ID provider
3.18.02026-08-18FixRedirect instead of 500 on a stale authorization callback
3.18.02026-08-18FeatureSupport PAR and DPoP client options
3.17.02026-06-11FixEnsure identity headers reflect validated tokens
3.17.02026-06-11FeatureMake client_secret optional for local JWT verification modes
3.17.02026-06-11FeatureUpdate session config to support lua-resty-session, fixes deprecated session.cookie.lifetime
3.16.02026-04-07ChangeSet default value of ssl_verify in openid-connect plugin to true
3.14.02025-10-09FeatureAllow to use environment variables for openid-connect plugin
3.14.02025-10-09ChangeImprove openid-connect plugin doc and add keycloak OIDC tutorial
3.14.02025-10-09ChangeWhen bearer_only is false, require the user to fill in session.secret
3.12.02025-04-01FeatureAdd valid_issuers field in openid-connect plugin
3.8.02024-01-09FeatureAdd required scopes configuration property to openid-connect plugin
3.8.02024-01-09FixEnable openid-connect plugin without redirect_uri got 500 error
3.7.02023-11-17FeatureAdd authorization params to openid-connect plugin
3.5.02023-08-29FeatureSupport configuring proxy server for openid-connect plugin
3.1.02022-12-26FixFix userinfo not being set when use_jwks is true in the openid-connect plugin
3.0.02022-10-26FeatureSupport session_secret in openid-connect plugin to resolve the inconsistency of session_secret among multiple workers
2.15.02022-07-22FeatureAdd PKCE support to the openid-connect plugin
2.15.02022-07-22FeatureAdd support for capturing OIDC refresh tokens in openid-connect plugin
2.13.02022-03-21FeatureSupport post_logout_redirect_uri config in openid-connect plugin
2.2.02021-01-05FeatureMake headers to add to request in openid-connect plugin configurable

API7 Gateway

ReleaseDateTypeChange
3.10.6 (opens in API7 Gateway docs)2026-08-25FixFixed issue: An identity provider that redirected back with error=temporarily_unavailable — which the specification defines as a transient condition — made the gateway answer HTTP 500. The authentication flow is now r… (opens in API7 Gateway docs)
3.10.6 (opens in API7 Gateway docs)2026-08-25FixFixed issue: required_scopes, claim_validator.audience.match_with_client_id and issuer validation were not applied in every case, letting through requests the configuration should have rejected. See Upgrade Notes. (opens in API7 Gateway docs)
3.10.5 (opens in API7 Gateway docs)2026-08-11FeatureAdded support for DPoP sender-constrained tokens (RFC 9449). When dpop.enabled is set, the gateway signs a DPoP proof with dpop.private_key for the token request and advertises the matching dpop.public_jwk, binding th… (opens in API7 Gateway docs)
3.10.5 (opens in API7 Gateway docs)2026-08-11FeatureAdded support for Pushed Authorization Requests (PAR, RFC 9126). When par.enabled is set, the gateway sends the full authorization request to the identity provider's PAR endpoint over a back channel and redirects the… (opens in API7 Gateway docs)
3.10.5 (opens in API7 Gateway docs)2026-08-11FixFixed issue: An Authorization header with leading or trailing whitespace was rejected in bearer_only mode, because the whitespace was carried into the extracted token. The header is now trimmed before the token is read. (opens in API7 Gateway docs)
3.10.4 (opens in API7 Gateway docs)2026-07-27FeatureAdded set_raw_id_token_header. When enabled, the raw ID token issued by the identity provider is forwarded to the upstream service in the X-Raw-ID-Token header, so the upstream can verify the token signature itself in… (opens in API7 Gateway docs)
3.10.4 (opens in API7 Gateway docs)2026-07-27FixFixed issue: An empty JSON array in the identity provider's user info (for example "roles": []) was re-encoded as an empty object ({}) in the X-Userinfo header on requests served from an existing session, so upstream… (opens in API7 Gateway docs)
3.10.4 (opens in API7 Gateway docs)2026-07-27FixFixed issue: Delivering an authorization callback whose state no longer matched the session — for example after starting a second login flow in the same browser — returned HTTP 500. The gateway now redirects to the or… (opens in API7 Gateway docs)
3.10.3 (opens in API7 Gateway docs)2026-07-14FixFixed issue: refresh_session_interval incorrectly defaulted to 900, enabling silent re-authentication even when users did not configure it. The default is removed (see Upgrade Notes). (opens in API7 Gateway docs)
3.10.2 (opens in API7 Gateway docs)2026-06-29FeatureAdded Redis as a session storage backend. Set session.storage to redis and configure session.redis (host, port, and related options) to store sessions in Redis instead of in the session cookie; cookie remains the defa… (opens in API7 Gateway docs)
3.10.2 (opens in API7 Gateway docs)2026-06-29Changeopenid-connect: session.redis.password (opens in API7 Gateway docs)
3.10.1 (opens in API7 Gateway docs)2026-06-15Featureclient_secret is now optional for flows that only verify tokens locally and never call the identity provider (bearer_only with public_key or use_jwks, private_key_jwt, and public-client PKCE). It remains required for… (opens in API7 Gateway docs)
3.10.1 (opens in API7 Gateway docs)2026-06-15FeatureExposed the lua-resty-session options under session (cookie name, path, domain, secure, http_only, same_site, and the idling, rolling, and absolute timeouts), so you can customize the session cookie name and set sessi… (opens in API7 Gateway docs)
3.10.1 (opens in API7 Gateway docs)2026-06-15Changeopenid-connect: session.secret (opens in API7 Gateway docs)
3.9.19 (opens in API7 Gateway docs)2026-08-26FixFixed issue: An identity provider that redirected back with error=temporarily_unavailable — which the specification defines as a transient condition — made the gateway answer HTTP 500. The authentication flow is now r… (opens in API7 Gateway docs)
3.9.19 (opens in API7 Gateway docs)2026-08-26FixFixed issue: required_scopes, claim_validator.audience.match_with_client_id and issuer validation were not applied in every case, letting through requests the configuration should have rejected. See Upgrade Notes. (opens in API7 Gateway docs)
3.9.18 (opens in API7 Gateway docs)2026-08-12FeatureAdded support for DPoP sender-constrained tokens (RFC 9449). When dpop.enabled is set, the gateway signs a DPoP proof with dpop.private_key for the token request and advertises the matching dpop.public_jwk, binding th… (opens in API7 Gateway docs)
3.9.18 (opens in API7 Gateway docs)2026-08-12FeatureAdded support for Pushed Authorization Requests (PAR, RFC 9126). When par.enabled is set, the gateway sends the full authorization request to the identity provider's PAR endpoint over a back channel and redirects the… (opens in API7 Gateway docs)
3.9.18 (opens in API7 Gateway docs)2026-08-12FixFixed issue: An Authorization header with leading or trailing whitespace was rejected in bearer_only mode, because the whitespace was carried into the extracted token. The header is now trimmed before the token is read. (opens in API7 Gateway docs)
3.9.17 (opens in API7 Gateway docs)2026-07-28FeatureAdded set_raw_id_token_header. When enabled, the raw ID token issued by the identity provider is forwarded to the upstream service in the X-Raw-ID-Token header, so the upstream can verify the token signature itself in… (opens in API7 Gateway docs)
3.9.17 (opens in API7 Gateway docs)2026-07-28FixFixed issue: An empty JSON array in the identity provider's user info (for example "roles": []) was re-encoded as an empty object ({}) in the X-Userinfo header on requests served from an existing session, so upstream… (opens in API7 Gateway docs)
3.9.17 (opens in API7 Gateway docs)2026-07-28FixFixed issue: Delivering an authorization callback whose state no longer matched the session — for example after starting a second login flow in the same browser — returned HTTP 500. The gateway now redirects to the or… (opens in API7 Gateway docs)
3.9.16 (opens in API7 Gateway docs)2026-07-10FixFixed issue: refresh_session_interval incorrectly defaulted to 900, enabling silent re-authentication even when users did not configure it. The default is removed (see Upgrade Notes). (opens in API7 Gateway docs)
3.9.15 (opens in API7 Gateway docs)2026-06-22FeatureAdded Redis as a session storage backend. Set session.storage to redis (the default remains cookie) and configure the connection under session.redis (host, port, authentication, database, key prefix, TLS, and timeouts… (opens in API7 Gateway docs)
3.9.14 (opens in API7 Gateway docs)2026-06-15FeatureAdded support for the lua-resty-session session options (such as cookie_name and cookie_path), so the session cookie can be customized. (opens in API7 Gateway docs)
3.9.14 (opens in API7 Gateway docs)2026-06-15Featureclient_secret is now optional for local JWT verification modes (for example bearer_only with public_key, use_jwks, or private_key_jwt), where a client secret is not required. (opens in API7 Gateway docs)
3.9.14 (opens in API7 Gateway docs)2026-06-15FixFixed issue: The openid-connect exemption that allows omitting client_secret was applied too broadly. It is now scoped to the OIDC flows that genuinely do not require a client secret. (opens in API7 Gateway docs)
3.9.14 (opens in API7 Gateway docs)2026-06-15ChangeOpenID Connect: session.secret (opens in API7 Gateway docs)
3.9.13 (opens in API7 Gateway docs)2026-05-22FixFixed issue: Client-supplied identity headers (X-Access-Token, X-Userinfo, X-ID-Token, X-Refresh-Token) could be forwarded upstream instead of values validated by the plugin. These headers are now cleared or overwritt… (opens in API7 Gateway docs)
3.9.13 (opens in API7 Gateway docs)2026-05-22FixFixed issue: The OpenID Connect plugin code editor could collapse or become unreachable on small or highly zoomed viewports. (opens in API7 Gateway docs)
3.9.11 (opens in API7 Gateway docs)2026-04-30FeatureAll plugins now support $secret:// and $env:// references in any configuration field automatically. Previously, only a handful of plugins (jwt-auth, openid-connect, limit-count, authz-keycloak, csrf, limit-req, limit-… (opens in API7 Gateway docs)
3.9.10 (opens in API7 Gateway docs)2026-04-22FeatureAdded OpenID Connect quick start presets with pre-filled configuration templates for common identity providers, simplifying initial OIDC plugin setup. (opens in API7 Gateway docs)
3.9.10 (opens in API7 Gateway docs)2026-04-22ChangeOpenID Connect: client_rsa_private_key (opens in API7 Gateway docs)
3.9.2 (opens in API7 Gateway docs)2026-01-19FeatureSupported validating claims by configuring claim_schema. (opens in API7 Gateway docs)
3.9.2 (opens in API7 Gateway docs)2026-01-19ChangeThe session.secret field is now required when bearer_only is false (the default). Previously, if not configured, a random secret was automatically generated on each data plane instance, which prevented sessions from b… (opens in API7 Gateway docs)
3.8.19 (opens in API7 Gateway docs)2025-12-09FeatureAdded support for the ${external_user.*} built-in variable to retrieve values from external user information. The variable is injected by the openid-connect plugin and developer portal OAuth authentication. (opens in API7 Gateway docs)
3.8.6 (opens in API7 Gateway docs)2025-06-27FixFixed issue: Sessions not properly closed on errors, leading to resource leaks. (opens in API7 Gateway docs)
3.7.1 (opens in API7 Gateway docs)2025-03-14FixFixed issue: Cannot configuring verify issuer. (opens in API7 Gateway docs)
3.7.1 (opens in API7 Gateway docs)2025-03-14FixFixed issue: Unable to validate audience claim. . (opens in API7 Gateway docs)
3.6.1 (opens in API7 Gateway docs)2025-03-14FixFixed issue: The plugin does not support configuring verify issuer. (opens in API7 Gateway docs)
3.5.5 (opens in API7 Gateway docs)2025-03-14FixFixed issue: The plugin does not support configuring verify issuer. (opens in API7 Gateway docs)
3.5.5 (opens in API7 Gateway docs)2025-03-14FixFixed issue: Unable to validate audience claim. (opens in API7 Gateway docs)
3.5.0 (opens in API7 Gateway docs)2025-01-27FeatureAdded redirect_after_logout_uri for plugin that do not have an end_session_endpoint. (opens in API7 Gateway docs)
3.5.0 (opens in API7 Gateway docs)2025-01-27FixFixed issue: The redirect_uri was set to ngx.var.request_uri if not configured and caused the underlying lua-resty-openidc module to raise error. (opens in API7 Gateway docs)
3.4.0 (opens in API7 Gateway docs)2025-01-07FeatureAdded authorization parameters. (opens in API7 Gateway docs)
3.4.0 (opens in API7 Gateway docs)2025-01-07FeatureAdded more attributes. (opens in API7 Gateway docs)
3.4.0 (opens in API7 Gateway docs)2025-01-07FeatureAdded required scopes configuration property. (opens in API7 Gateway docs)
3.4.0 (opens in API7 Gateway docs)2025-01-07FeatureAdded session.cookie configuration. (opens in API7 Gateway docs)
3.4.0 (opens in API7 Gateway docs)2025-01-07FixFixed issue: Not closing session and blocking until TTL expired when using lockable session storage backend. (opens in API7 Gateway docs)
3.4.0 (opens in API7 Gateway docs)2025-01-07FeatureSupported setting headers in introspection request. (opens in API7 Gateway docs)
3.3.0 (opens in API7 Gateway docs)2024-12-17FeatureAdded proxy_opts attribute. (opens in API7 Gateway docs)
3.3.0 (opens in API7 Gateway docs)2024-12-17FeatureSynchronized the latest APISIX code. (opens in API7 Gateway docs)