-
Notifications
You must be signed in to change notification settings - Fork 21
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
Specification is missing examples for request objects #78
Comments
QQ: @Sakurann @paulbastian
later
|
Yes, those examples are correct for cases 1 & 3. I'd agree we are missing an example only for case '2' now. |
@jogu Thanks for verifying! I finally found it here https://openid.net/specs/openid-connect-core-1_0.html#RequestObject Request object
The request object is base64url-encoded and signed (in the example with RS256 algo) and that result is put into the
The following RSA public key, represented in JWK format, can be used to validate the Request Object signature in this and subsequent Request Object examples.
Q How is this public key shared? My best guess is that it can be accessed via Q Is there a schema for attributes of the Request object? I included the ones used in the "passing as URL with encoded parameters" case.
Reasons request object by value isn't popular make sense to me https://openid.net/specs/openid-connect-core-1_0.html#RequestUriRationale , I might point to this and mention it while describing the example. |
It's generally better to use https://www.rfc-editor.org/rfc/rfc9101.html as the reference rather than the OpenID Connect specification - RFC9101 is an updated newer version of what's in OpenID Connect. In particular in the OAuth version there is much less data passed outside the signed request object, so the example would become:
Including the public keys in the request (without some way to confirm their authenticity) would not result in any benefit to using a signed request. The way the keys can be obtained/passed varies depending on which client_id_scheme is in used, see https://openid.github.io/OpenID4VP/openid-4-verifiable-presentations-wg-draft.html#client_metadata_management In the above case, as there is no client_id_scheme passed it is assumed the keys/clientid have been pre-registered with the wallet. (This isn't a likely case in the real world. For example when you use mobile driving licenses you always use (The mechanism you describe of getting a public key from the AS jwks uri [which would be found via .well-known/openid-configuration or .well-known/oauth-authorization-server] would only be applicable for encryption - for signing the client must communicate it's own public key to the AS somehow)
In general it's the same attributes that you could use in an unsigned request, plus the standard JWT claims (iss, aud, exp). https://www.iana.org/assignments/oauth-parameters/oauth-parameters.xhtml#parameters is the definitive list (but doesn't contain VP specific items like For the example it makes sense to work from one we already have. So taking this example:
turning this into a request object the payload would be:
(and probably iat / exp too) |
Observation:
Thanks! Here is the PR #218 |
I can see how you got there, but |
For the actual Authorization Request there are currently three main options:
To my knowledge, the majority of implementations are currently favoring option 3. However, the specification does not offer examples for option 2 and three, which would be useful for new people.
Additionally, listing the three options in the start of Section 5 might be helpful.
The text was updated successfully, but these errors were encountered: