A JWT security assessment checks whether an application verifies a token before trusting its claims and whether that token belongs in the requested workflow. Decoding a JSON Web Token only reveals its contents. A readable user ID or administrator claim is not evidence that the application should accept it.
Start with the API’s trust contract: which identity service issues its tokens, which application may use them, which token type it expects, and how long they remain usable. That contract turns a vague token review into decisions a development team can test.
What does a valid signature establish?
A verified signature establishes integrity and authenticity relative to the trusted signing key. The receiving service still needs to decide whether the token is intended for it and appropriate for the operation.
IETF RFC 8725 provides JWT best practices, including algorithm restrictions, issuer and audience validation, and rules that prevent confusion between token types. Configure those expectations at the receiving service rather than allowing an incoming token to choose its own trust policy.
For an illustrative company with a staff dashboard and a customer API, document both token contracts. Even if one identity service supports both applications, do not assume that evidence accepted by the dashboard is also sufficient for customer API access.
Which rejection cases belong in the assessment?
Use a controlled identity environment and synthetic users. Prepare the normal accepted token, then test independently changed conditions: an expired token, an unexpected issuer, an incorrect audience, an unsupported signing method, and a token meant for another purpose.
Record the expected rejection for each case before sending it. Capture the endpoint, token category, response, and server-side decision where available. Redact token values from the report because a test token can still carry access while it is valid.
Include an ordinary accepted request between negative cases. Otherwise, a broken test environment that rejects everything can look like a successful security control.
Where are claims turned into business permissions?
Trace the accepted identity into the application’s membership and role checks. A token identifying a user is only one input to a decision such as whether that user can approve an invoice in a particular workspace.
For the example company, create a test employee with dashboard access but no customer workspace membership. Check whether the customer API rejects the requested business action. This separates token verification from the application’s authorization decision and makes the resulting finding easier to assign.
Also agree how quickly a removed role should stop working. If the design deliberately accepts existing claims until token expiry, record that interval and the emergency revocation mechanism. Do not describe an undocumented delay as immediate removal.
How should signing-key rotation be checked?
Rehearse rotation in a test identity environment with an explicit transition plan. Establish when the new key becomes accepted and when the retired key stops being trusted. Verify what a service does when its key cache cannot refresh.
The acceptance record should include the key identifier, configuration revision, and observation time without including private signing material. Use the same API paths that customers rely on; a successful identity-provider configuration update does not prove that every consuming service refreshed its trust configuration.
What should a JWT assessment deliver?
Ask for a token acceptance matrix, the services reviewed, the rejected conditions, and any remaining dependency on identity-provider behavior. For a Ceron engagement, specify whether configuration review, application code, and a test issuer are available.
JWT validation answers whether the service should accept the presented token. Session revocation testing addresses access after compromise, while API key permissions covers another common integration credential. The two-application scenario above is a proposed assessment case.