-
Notifications
You must be signed in to change notification settings - Fork 397
Refactor jwt handling #488
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
@DeepDiver1975 This PR implements the changes discussed in #484 and a few other items, as listed above. What are your thoughts? I also added a few new tests Are you fine with creating the tokens/jwts during the tests, or should they all be pre-created and stored in fixtures ? |
|
I've testet this with php 8.1 on Ubuntu 22.04 against a kanidm 1.7.3 server. Because the Kanidm Cryptographic settings require ES256. It at least seems to work for me so far. ;-) |
List of common tasks a pull request require complete
Closes #484
Added
getJtiFromBackChannel(), Closes Fix: Verfify jti claim exists on backchannel logout token #481getJWSClaimsverifyJWSHeaderChanged
fetchURLto return new custom Response class to improve testingNonceclaim must be present, Partially reverts Check nonce isset #280 (1)verifySignatures()method signuture, accepting JWS object instead of stringRemoved
getResponseCode(), replaced with new response methodgetStatus()getResponseContentType(), replaced with new response methodgetContentType()verifyJWTClaims(), replaced with individual checks using the ClaimCheckerManager, as the claims that have to be checked are too different across the different types of requests to move logic to a simple functionvalidateIssuer(), replaced withIssuerCheckerverifyJWTSignature(), replaced withverifyJWSSignature()Fixed
Comments
1: Nonce must be present, see https://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation and https://openid.net/specs/openid-connect-core-1_0.html#ImplicitIDTValidation as we always send a nonce to the OpenID Connect server (see https://github.com/jumbojett/OpenID-Connect-PHP/blob/master/src/OpenIDConnectClient.php#L761)