-
Notifications
You must be signed in to change notification settings - Fork 13
Support for RFC 9207 (Authorization Response Issuer Identification) #243
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
base: main
Are you sure you want to change the base?
Conversation
|
#244 has fix for the build breaking on CI latest version was generated quite some time ago, i saw in my local output that formatting for authors links doesn't work any more, there might be some other things that will break. Locally I used latest version 7.0.7 from nix packages via devbox https://www.nixhub.io/packages/bikeshed |
|
Identity providers that conform to RFC 9207, in addition to providing the |
|
Thank you Aaron for reviewing! Indeed, [RFC9207] indicates that
which I read as a requirement to enable the distinction of the two checks:
Reflected in the proposal text.
I understand the purity aspect of this SHOULD statement but I am left wondering about the security implications. The security considerations do not provide any guidance here (as far as I read them), especially given the second sentence that there may be reasons to not advertise support. Consider the following mix-up example:
Or the inverse:
Whether or not a server indicates support does not really seem to matter if the client enforces the iss check. My current understanding is that the above SHOULD statement targets the case when:
In such case, a mismatching iss parameter may lead to unintended behavior of the client. This is already mitigated by the proposal: A client MUST check that the iss parameter matches the expected value upon receiving the authorization response. What are your thoughts here? |
I would like to volunteer to do my bit of editing on the Solid-OIDC specification, starting with this proposal.
I have a implemented solid-oidc-client-browser, and following up the discussion in #221, I would like to propose adding the there outlined mechanism of [RFC9207], in accordance with the Current Best Practice [RFC9700].
[RFC9207] prevents Mix-up Attacks by requiring the Identity Provider to return an
issparameter alongside the authorization code. This allows the client to verify that the response originated from the intended provider, which is particularly critical in the decentralized environment that Solid facilitates where clients often interact with multiple, dynamic OPs discovered via WebIDs.Requirement for RFC 9207
Current Best Practice [RFC9700] declare defense against mix-up attacks REQUIRED if a client may interact with multiple Authorization Servers (i.e., Identity Providers in our case). To do so, they recommend either supporting [RFC9207] or choosing an alternative.
In Solid-OIDC
Therefore, supporting [RFC9207] is a requirement.
Implementation Experience
Supporting [RFC9207] in the client library was straight forward and required only a few lines of code. See also uvdsl/solid-oidc-client-browser#12 on the server-support of [RFC9207]:
Already supported by
Close to support
Status unkown