-
Notifications
You must be signed in to change notification settings - Fork 49
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
Signing should support issuer and identity arguments too #567
Comments
Thinking about this further, the same issue exists in the ambient credential case... which the identity_token() change would not help with. So either Modifying the Signer API has the downside that the potential future improvements to the OIDC proxy would still require separate changes in Issuer... but conceptually it feels correct that Signer would check that the token is what it should be: it doesn't matter if in the future a "login_hint" is passed to the OIDC proxy or not, Signer should still check that the token is as expected. |
I have an actual proposal now. Wrote a whole document to make it clearer to myself: https://docs.google.com/document/d/1VNCXhUW_DSm0jG8ZmzhY2AfZo8KUUTDv4KbvHqI1yH8/edit?usp=sharing The summary is that I think issuer = Issuer.production()
token = issuer.identity_token()
id, issuer = token.get_certificate_identity()
if id != signing_id or issuer != signing_issuer:
raise CredentialError("Unexpected signing token")
# continue signing with token ...
Improving the ability to constrain the actual web login process can still happen separately (to prevent authentication with "wrong" identity), but I think the above is useful in any case. |
Thank you for writing this up @jku! I think this looks very reasonable, and fits nicely into the other breaking changes we're making before a 2.0 release of |
Working on this now. What I'm going to do is re-use our existing |
See #567. Signed-off-by: William Woodruff <[email protected]>
I think this is a good idea. Summarizing a few comments I've made across issues and PRs:
|
#635. |
Issue
Situation is this
Proposal
EDIT: Please see comment below for maybe a better proposal
Signing should support issuer and identity arguments just like verification does.In practice:*Issuer.identity_token()
could accept optional argumentsidentity
andissuer
*Issuer.identity_token()
could check the token contents and fail if they do not match the arguments (note that issuer here refers to the issuer that will be used in the certificate so the check needs to be against the federated issuer if there is one, not the oidc issuer)* this could be extended to the UI as well:sigstore sign
could have--cert-oidc-issuer
and--cert-identity
optionsIn future identity_token() could make things easier for user too:* could use the OIDC optional argumentlogin_hint=identity
-- unfortunately this is not supported by dex (the sigstore oidc proxy) currently* dex apparently has a non-standardconnector
which could be used to pre-select the issuerThe text was updated successfully, but these errors were encountered: