#813: FedCM Auto Re-authentication API
Discussions
Discussed
Feb 20, 2023 (See Github)
Hadley: [leaves comment about lack of explainer]
Amy: I think this is too early.. still going back and forth with group members on this in an issue. There's no privacy & security questionnaire.
Comment by @hadleybeeman Feb 20, 2023 (See Github)
Hi @yi-gu. Thanks for opening this review. If you'd like our feedback, could you please draft us a quick explainer to cover how you'd like this to work and why you've chosen that approach above the other approaches you've considered?
If it helps, our explainer template and explainer explainer are posted.
We look forward to hearing more from you.
Discussed
Feb 27, 2023 (See Github)
- Breakout Rollup
- Issue Triage
Discussed
Mar 13, 2023 (See Github)
Hadley: we weren't happy with explainer - asked them for a proper explainer - they have not responded.
Comment by @samuelgoto Mar 13, 2023 (See Github)
Hey @hadleybeeman thanks for reviewing this! I replied to @torgo over email, but figured it would be useful to give context here more publicly in case we run into this again.
Hi @yi-gu. Thanks for opening this review. If you'd like our feedback, could you please draft us a quick explainer to cover how you'd like this to work and why you've chosen that approach above the other approaches you've considered? If it helps, our explainer template and explainer explainer are posted.
We did originally have proposals to extend FedCM in the form of explainers that follow the template (you can still see some of them here), but we got feedback from Mozilla that it would help their reviews if these were filed as github Issues as opposed to standalone markdown files: making comments in github issues is a much lower hurdle to pay to engage than it is to kick off new github issues or submit pull requests.
file issues followed by proposals followed by spec PRs, as opposed to explainers, to substantially decrease the cost of engagement (much easier to comment on github issues than to comment on explainers)
https://github.com/fedidcg/FedCM/issues/431#issuecomment-1425025469
That overall makes sense to us (we'll follow whatever makes our reviewers life easier), so we started to slowly port our explainers into github issues.
So, what @yi-gu pointed you to in the TAG request here is, in fact, the place in which we explain the problem, the alternatives we considered and the proposal we have an inclination to go for.
I'm sorry if this causes extra work for you all, and we'd be happy to adapt to find ways to make reviews (mozilla's and yours included) as effective as possible, but just wanted to give context as to why these aren't standalone markdown files.
Since we do expect to send you all a few more reviews in the next few weeks/months, let me know if you feel like this isn't a reasonable format and we can work together with Mozilla to figure out something that works, Sam.
Discussed
Apr 1, 2023 (See Github)
Posted a question about user consent and possibly replay issues.
Comment by @plinss Apr 20, 2023 (See Github)
@maxpassion and I looked at this during our Tokyo F2F. One question that came up is about getting user consent for the re-auth flow. It seems like in addition to the RP opting-in to this flow, perhaps the user should also have the option to (or be required to) opt-in during the initial login flow. e.g. when prompted for intiial permissions have to choice of 'Remember me' or 'Only for this session' or such. Our concern is if a user uses FedCM to log in to a service on a public terminal, would the next person using the same terminal be able to sign back in to the original service without knowing the user's credentials? (or at least gain some knowledge about the previous user having an account on the service and possibly login name.)
Comment by @yi-gu Apr 20, 2023 (See Github)
Thank you for the feedback!!
Quick update: in general we are moving towards to a direction to resue the existing mechanism for "automatically returning credentials" defined in Credential Management API. In particular, the mediation requirement and preventSilentAccess as discussed in the initial issue (we'll request another round of review when the proposal is updated).
For the concern regarding public terminal, here are some quick notes:
- If the user has signed out of their identity provider before leaving the terminal (which they are expected to), auto re-authn won't be triggered because the browser cannot get any account from that identity provider.
- If not, the next person that uses the same terminal already has access to the previous user's IdP data which provides them the capability to access the federated accounts.
- Suppose the second user is not an attacker and won't try to steal anything from the first user. The concern is that the second user will automatically authenticated to the website unintentionally and learn about the first user by accident, right? In this case, if the website uses Credential Management API (with IdentityCredential, PasswordCredential etc.), it's expected to invoke
preventSilentAccess()
upon user signing out. So if the user has signed out of the RP, then auto re-authn won't be triggered; if not, the second user has access to the first user's RP account already. Unless the website does not invokepreventSilentAccess()
in which case the second user will see auto re-authn with the first user's account (assuming the user is NOT signed out of their IdP). But at this point, we think this should be a rare case similar to other credential types that rely onpreventSilentAccess()
.
Does it make sense?
Comment by @yi-gu May 11, 2023 (See Github)
Hello again!
We have finalized our proposal to support auto re-authentication. As mentioned earlier, we decided to reuse the existing mediation requirements and preventSilentAccess from the CredentialManagement API. i.e. no new web API will be introduced for this feature.
The spec PR has been merged after we aligned with Firefox on the proposal.
Since there's no new API, should we close this review? Please let us know if anything else is needed from us.
Thank you!
Discussed
Jun 12, 2023 (See Github)
Hadley: looked at in the tokyo face to face. I'm not sure their reply addresses Peter's question. My main concern.. prevent silent access.. the site calling the browser after the user clicks sign out... sounds like credentials are still in the browser.. could there be ways to override that? On the other hand the browser as the UA is the place we've decided to trust for all this stuff anyway. So I think it's okay.
Peter: in saml in a lot of implementations you can sign out of the RP without signing out of the IDP. You're just closing the session. So if you revisit the same app it autorelogs you in.
Hadley: so you have multiple steps to sign out, that don't necessarily feel intuitive? That's not good for the user
Peter: in saml there's the possibility that when you sign out of an app you can feed it upstream and sign it out of the idp as well. And that can kill sessions of other RPs, but that's very rarely implemented. I don't know if this flow is an issue in FedCM. In my experiecne most users don't undrestand the difference between signing into an RP vs an IDP. If you're on a computer that isn't yours, most cases people will think they have signed out but haven't. Concerned about people walking away from active sessions that they don't realise they're walking away form.
Hadley: I think that's worth making explicit
Peter: this might be addressed elsewhere in FedCM, don't want to add noise. Need more time - plenary.
Discussed
Jun 19, 2023 (See Github)
Amy: They've asked "since there's no new API should we close this review"?
Yves: and they've said they align with firefox.
set to proposed closing and bumped to f2f to close
Comment by @torgo Jun 21, 2023 (See Github)
Given the above info we're happy to close. As Peter commented above, we generally remain concerned about scenarios involving public terminals so we encourage you to take those into account. Thanks! ✨
OpenedFeb 3, 2023
Wotcher TAG!
I'm requesting a TAG review of FedCM Auto Re-authentication API .
An extension to the existing FedCM API that provides a streamlined UX when users return to websites. The API requires that the user has already granted permission for the RelyingParty (RP) and Identity Provider (IdP) communication in the browser through a previous FedCM call.
Further details:
You should also know that the initial FedCM TAG review is https://github.com/w3ctag/design-reviews/issues/718. We're requesting a review specifically on the addition: auto re-authentication.
We'd prefer the TAG provide feedback as (please delete all but the desired option): 💬 leave review feedback as a comment in this issue and @-notify @yi-gu