[JIRA] (JCOMOIDC-41) Move OIDC Signature Validation resolvers and parameter classes to commons

Philip Smart (Jira) jira at shibboleth.atlassian.net
Fri May 6 13:14:17 UTC 2022


Philip Smart ( https://shibboleth.atlassian.net/secure/ViewProfile.jspa?accountId=5afecdc1eb3ffa0c596652c4 ) *commented* on JCOMOIDC-41 ( https://shibboleth.atlassian.net/browse/JCOMOIDC-41?atlOrigin=eyJpIjoiNjBmNDk3YmJiNDY2NDIzZGIwYTY2MDQzMjNiYWQ3MTQiLCJwIjoiaiJ9 )

Re: Move OIDC Signature Validation resolvers and parameter classes to commons ( https://shibboleth.atlassian.net/browse/JCOMOIDC-41?atlOrigin=eyJpIjoiNjBmNDk3YmJiNDY2NDIzZGIwYTY2MDQzMjNiYWQ3MTQiLCJwIjoiaiJ9 )

I’ve pushed the following changes to the dev branch:

* Added a EvaluableKeyIDCredentialCriterion to the trust engine impl. The criterion is passed to the credential resolver so it can include the key with the matching kid. I think this is a requirement from the spec.
* Added a JWTSignatureSecurityHandler. This is a BaseTrustEngineSecurityHandler which just resolves the trust engine, builds the criteriaset - and includes the OP metadata as a criterion - and calls the trust engine.
* Added a SignatureValidationConfiguration which mimics the existing opensaml SignatureValidationConfiguration but directly encapsulates a generic TrustEngine rather than the XML signature typed SignatureTrustEngine. This allows compatibility with the new JWT Trust Engine.
* Added a SignatureValidationParameters which is the same as the existing SignatureValidationParameters but linked to a generic Trust Engine (similar to the above) e.g. can be linked to the JWT Trust engine.
* Added a JWTSecurityParametersContext, which is identical to the existing SecurityParametersContext but linked to the new SignatureValidationParameters<SignedJWT>.
* Added a JWTSignatureValidationConfigurationCriterion to hold a list of SignatureValidationConfigurations.
* Added a idTokenJwtSignatureValidationConfig option to the OIDCSecurityConfiguration - for specific configuration of the id_token validation - not sure if this is the correct way to add this long term.
* Added a PopulateJWTSignatureValidationParameters Profile Action, alongside a PopulateJWTSignatureValidationParametersHandler. To populate the security params context from the signature validation configuration.
* Added a POC for an OP metadata credential resolver.

* This fetches and resolves JWK key sets from the metadata’s jwks_uri via the existing RemoteJwkSetCache implementation.
* Need to look at algorithm filtering.

This is working e2e with the OIDC certification suite - for the single test I currently use.

Next steps (maybe):

* Add a credential resolver that resolves a client_secret - which already exists in the context, and almost has a resolver in the RP project for doing this.

* I guess this can then be chained together with the provider metadata jwks resolver - or similar.

* Possibly need a PKIXX type JWT trust engine to determine key trust from an X.509 certification chain in the JOSE header - if there is one, and we do not use explicit key trust from the metadata.

( https://shibboleth.atlassian.net/browse/JCOMOIDC-41#add-comment?atlOrigin=eyJpIjoiNjBmNDk3YmJiNDY2NDIzZGIwYTY2MDQzMjNiYWQ3MTQiLCJwIjoiaiJ9 ) Add Comment ( https://shibboleth.atlassian.net/browse/JCOMOIDC-41#add-comment?atlOrigin=eyJpIjoiNjBmNDk3YmJiNDY2NDIzZGIwYTY2MDQzMjNiYWQ3MTQiLCJwIjoiaiJ9 )

Get Jira notifications on your phone! Download the Jira Cloud app for Android ( https://play.google.com/store/apps/details?id=com.atlassian.android.jira.core&referrer=utm_source%3DNotificationLink%26utm_medium%3DEmail ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailNotificationLink&mt=8 ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100198- sha1:597f829 )
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/commits/attachments/20220506/253c8ddf/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: jira-generated-image-static-comment-icon-54f8e62e-d721-4cf0-8b38-536e9fda20fe
Type: image/png
Size: 1084 bytes
Desc: not available
URL: <http://shibboleth.net/pipermail/commits/attachments/20220506/253c8ddf/attachment-0003.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: jira-generated-image-static-footer-desktop-logo-3e1d3cb4-638a-4800-acb6-68b221256b1b
Type: image/png
Size: 10805 bytes
Desc: not available
URL: <http://shibboleth.net/pipermail/commits/attachments/20220506/253c8ddf/attachment-0004.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: jira-generated-image-avatar-8712cd61-693c-40a8-8870-a465520ec405
Type: image/png
Size: 468 bytes
Desc: not available
URL: <http://shibboleth.net/pipermail/commits/attachments/20220506/253c8ddf/attachment-0005.png>


More information about the commits mailing list