Skip to content
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

[Issue #3103] Pass client assertion jwt to token endpoint #3190

Merged
merged 30 commits into from
Dec 13, 2024

Conversation

chouinar
Copy link
Collaborator

Summary

Fixes #3103

Time to review: 10 mins

Changes proposed

Changed the way we call the OAuth token endpoint to use private_key_jwt

Added docs for how to setup Login.gov certs

Context for reviewers

For the first pass, I setup the call to the token endpoint to use client_id, but actual Login.gov uses private_key_jwt for this instead (which includes the client ID). Luckily it seems our local mock is fine with that and can take in this as well. It doesn't do any validation on the key itself, so any private key is fine.

Effectively, this form of "auth" is just passing the client ID + a hash that could have only been created by our private key, and login.gov is configured to have our public key.

Additional information

For testing this, I actually connected it to our dev login.gov app which I setup alongside it. It works! Also verified exactly what we need to set for many of the env vars to get everything happy.

You get directed first to:

Screenshot 2024-12-11 at 4 14 39 PM

And then back to our API and then the final endpoint with a token that works locally.

chouinar and others added 25 commits December 2, 2024 16:43
Base automatically changed from chouinar/2810-connect-it-all to main December 12, 2024 17:25
@chouinar chouinar merged commit e9c710d into main Dec 13, 2024
@chouinar chouinar deleted the chouinar/3103-jwt-assertion branch December 13, 2024 14:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

When calling login.gov token endpoint, create a JWT for client assertion
3 participants