idp-debug-jwt

Diagnose Overlens IDP JWTs by decoding, verifying RS256 signatures, and checking iss, aud, and exp claims.

Updated Jul 24, 2026
One-click install
npx skills add https://github.com/overlens/claude-marketplace --skill idp-debug-jwt-overlens
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: idp-debug-jwt
Source: https://github.com/overlens/claude-marketplace/tree/main/plugins/idp-integration/skills/idp-debug-jwt
Command: npx skills add https://github.com/overlens/claude-marketplace --skill idp-debug-jwt-overlens

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? When an Overlens IDP token "should be valid but isn't", developers waste time guessing whether the failure is a bad signature, a stale JWKS cache, an audience mismatch, or an expired token. This Skill pinpoints the exact failure reason for a specific token or JWKS response instead of returning a generic "invalid token" error. ## Core Features & Use Cases - Zero-dependency inspect script: A Node.js (>=18) script decodes the token, fetches the live JWKS, matches the kid, verifies the RS256 signature, and checks iss/aud/exp in one run. - Symptom-to-cause mapping: A diagnostic table maps errors like kid not found, invalid signature, and alg: HS256 to their root causes (stale JWKS cache after key rotation, tampered payload, algorithm-confusion forgery) and their fixes. - Deep-dive references: Detailed notes on the key-rotation timeline, the full algorithm-confusion attack anatomy, and curl/jq recipes for inspecting the JWKS endpoint directly. - Use Case: A developer pastes a JWT that works in dev but fails in production. The script reveals the signature is valid but the aud claim does not include the production API's audience, identifying a configuration mismatch rather than a bad token. ## Quick Start Ask the assistant to debug your Overlens token by pasting the JWT and saying "decode and verify this Overlens token against the live JWKS and tell me why it is being rejected".

Frequently Asked Questions about idp-debug-jwt

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I debug an Overlens JWT that fails validation?

Run the bundled inspect-token.mjs script with the token as an argument. It decodes the header and payload, fetches the live JWKS, matches the kid, verifies the RS256 signature, and checks iss, aud, and exp, printing a labeled verdict for each possible failure.

Why does my Resource Server report kid not found in the JWKS?

A missing kid is usually a timing issue: the Resource Server cached the JWKS before a key rotation, or the token was signed by a key already retired from the set. Force a JWKS refresh by restarting the server or clearing its cache, since the IDP serves Cache-Control max-age=3600.

What does it mean if an Overlens token has alg HS256?

The Overlens IDP signs only with RS256, so an HS256 token is either forged via an algorithm-confusion attack or issued by a misconfigured non-Overlens issuer. A correct Resource Server pins algorithms to ['RS256'] and rejects such tokens outright.

Why is a token with a valid signature still returning 401?

When the signature verifies, the failure is in claim validation, not cryptography. Check that iss matches your JWT_ISSUER, that your expected audience appears in the token's aud array, that exp has not passed, and that the verifier pins RS256.

Does the inspect script require any npm dependencies?

No. The script is zero-dependency and runs on Node.js 18 or later, using only the built-in fetch API and node:crypto to construct the public key from the JWK and verify the RSA-SHA256 signature.

When should I use this instead of writing JWT validation code?

Use this skill when you have an existing token or JWKS response that misbehaves and need to explain why. If you are implementing JWT validation in a Resource Server from scratch, use the idp-validate-token skill instead.