Repository navigation
BED-10155: Accept null kid for embedded JWKs - #65
Open
MichaelGrafnetter wants to merge 1 commit into
Open
MichaelGrafnetter wants to merge 1 commit into
MichaelGrafnetter wants to merge 1 commit into
Conversation
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The narrowly scoped model change covers both reported validation cases with regression tests and has no identified blocking issues.
No open issues 🎉
What changed in this PR
Prevents OAuth clients with missing or null JWK identifiers from being rejected during collection, preserving downstream role assignments.
Changes:
- Makes the client application JWK
kidfield optional. - Adds regression coverage for both null and absent
kidvalues.
| File | Description |
|---|---|
| tests/test_application_jwk.py | Tests client validation with null and absent key identifiers. |
| src/openhound_okta/models/client_apps.py | Allows kid to be omitted or null. |
Review effort: Balanced
JimSycurity
approved these changes
Oct 20, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
client_applicationsresource (GET /oauth2/v1/clients) validates each OAuth client with theClientApplicationmodel, whose nestedJWKrequiredkid. Thekidmember is optional in RFC 7517, and Okta accepts keys registered through the Apps API or dynamic client registration without one, returning them withkid: null. Validation then failed and DLT discarded the whole client row, not just the key. Becauseclient_role_assignmentsis fed from this resource, a service client affected this way also lost all of its direct admin role assignments in the graph.kidis now optional on the client applicationJWKmodel, matching theJWKmodel inmodels/application.pythat actually producesOkta_JWKnodes. Nothing readsjwksfromClientApplication.Summary by CodeRabbit