-
Notifications
You must be signed in to change notification settings - Fork 74
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
In any
mode, make the browser automatically generate clientId
based on the RP's origin when omitted
#586
Comments
since we already send an Origin header, why not just make clientId optional in this case? |
That's an interesting idea, that implies that the OAuth server would effectively use the Origin header as the client_id. I suppose that does work, tho only in a web context, so it would have to have some processing rule like "if Origin header is present, client_id=Origin, otherwise look in the query string". |
oh, what you're saying is existing servers assume that clientId==origin? |
Right now, the |
I am surprised by your implication that they don't otherwise need changes for FedCM. I mean, don't they need to check things like sec-fetch-dest matching "webidentity", etc.? |
I'm curious how client ID is currently determined in BYO IDP cases if not using the Origin |
That's stuff at the new FedCM endpoints, which is all net new code. Changing how |
The client provides its URL in the initial redirect to the authorization endpoint. Since the Origin header only exists in browsers, non-browser clients need a solution too. |
For example, the client would construct this URL and redirect the browser to it:
Since it's a redirect, the origin header that the authorization server sees is the authorization server itself of course. |
it seems like the fedcm endpoint could fill in the client_id then? |
Ok looking at how I implemented this, I did make a new endpoint for the assertion endpoint (rather than trying to reuse the authorization endpoint). That's where it does the check for the |
Wouldn't this tie FedCM too much to an implementation detail in IndieAuth (@aaronpk I think we discussed a better solution for client_id for both) |
Based on this, should we close this as wontfix or do you still think we should do something here? (maybe we should make clientId optional? I believe it's currently required) |
I'm leaning towards not recommending FedCM do anything automatic with We've been talking about changing the |
Ok, I'm going to close this for now and reopen in case the need appears. |
When an RP uses
any
with w3c-fedid/idp-registration#2 and w3c-fedid/idp-registration#1 it is, by design, not an RP that is registered with the IdP ahead of time, so things likeclientId
isn't something that they need to specify (e.g. similarly, they wouldn't have registered terms of service and privacy policies, as described in w3c-fedid/idp-registration#8).So, instead of making every RP pass
clientId: window.location.origin
, maybe it would be helpful for the browser to generate that value, so that it can decrease the number of ways RPs could get wrong.The text was updated successfully, but these errors were encountered: