The error “no suitable authorization credentials were provided” usually means Kong (or an upstream service) expected authentication information, but it either:
- Didn’t receive it at all
- Received it in the wrong format
- Received it in the wrong location (header vs. query parameter)
- Couldn’t match it to any configured credentials
Here’s how to troubleshoot it step-by-step:
1. Identify which plugin or service is throwing the error
- Kong Plugin Layer – Often caused by
key-auth,jwt, oropenid-connectplugin when no valid credential is passed. - Upstream Service Layer – Could be from the API/backend if Kong passed the request without credentials.
- Load Balancer / F5 – Sometimes strips or alters headers, so credentials never reach Kong.
2. Check the authentication type you’re using
- API Key (
key-authplugin)- Expected:
apikeyin?queryorapikeyin header (apikey: <key>). - Verify:
curl -H "apikey: YOUR_API_KEY" https://your-kong-endpoint/your-api
- Expected:
- JWT Plugin
- Expected:
Authorization: Bearer <jwt_token>header. - Token must be valid and match a configured consumer.
- Expected:
- OpenID Connect (
openid-connectplugin)- Expected: Valid ID/Access token, usually
Authorization: Bearer <access_token>. - Token must be signed by a trusted issuer in plugin config.
- Expected: Valid ID/Access token, usually
3. Verify headers are not stripped
If you have F5 / Nginx / Apache in front of Kong:
- Check that
Authorizationheaders are forwarded. - In F5, enable
HTTP::header Authorizationforwarding. - In Nginx, ensure:
proxy_set_header Authorization $http_authorization;
4. Check Kong logs for details
Run Kong in debug mode temporarily:
KONG_LOG_LEVEL=debug kong restart
tail -f /usr/local/kong/logs/error.log
Look for:
plugin=...lines showing missing credentialsno credentials found for given consumer/issuer
5. Confirm consumer mapping
For jwt or oidc:
- The public key / JWKS URL must be correct.
- The
iss(issuer) in token must match plugin config. - The consumer must be linked to the credential.
💡 Common causes I’ve seen in your past scenarios with F5 + Kong + Ping Identity:
- F5 stripping
Authorizationheader before reaching Kong. - Wrong token type (ID token instead of Access token) in OIDC flow.
- Consumer not mapped in Kong for the provided JWT/OIDC token.
client_idandclient_secretmissing in a token request.
If you want, I can draw you a flow diagram for Kong + Ping Identity showing exactly where the credential might be getting lost in your setup with F5 in the middle. That would make pinpointing the issue much faster.