-
Notifications
You must be signed in to change notification settings - Fork 22
Description
In the FedID CG, we have, as a group, identified that it may be possible to preserve (in the absence of third party cookies) some of the deployment of identity federation through the use of CNAMEs and SameSite cookies.
We would like to know if what we have in mind is: (a) recommended by the browser community as a viable option long term - e.g. no mitigation / intervention planned - and if not (b) recommendations on where to go from here.
The pattern
- A company, say
rp.com, hires the services of another company, sayidp.com, to host and manage its authentication system, typically giving them arp.idp.comsubdomain. @hlflanagan did I get this right?- When users navigate to
rp.comthey get redirected torp.idp.comrp.idp.com, hosted and controlled byidp.com, handles the user's authentication torp.idp.comand setsrp.idp.comfirst party cookiesrp.idp.comnavigates the user back to rp.com with the user's identity in the URL parameters.rp.comtakes the user's identity from the URL parameters and logs the user inrp.comembeds iframes pointing torp.idp.comto continue managing the user's sessions (e.g. logging out)
The Problem
- Step (4) embeds a user identifier in URL parameters
- Step (6) depends on third party cookies
The Proposal
What's being suggested, and what we are looking for guidance is:
- As part of step (1), the RP can change its DNS configuration to point
login.rp.comto an agreed upon IDP IP address, to be used in replacement ofrp.idp.com.- Step (5) and (7) are no longer a problem because
rp.comandlogin.rp.comare SameSite.This has desire property of being fairly compatible with the current deployment, requiring a few configuration
changes (rather than using new APIs).
It doesn't seem like that would introduce any new surface that would be able to be abused for cross-site tracking, because it would seem that, even if the traffic is served by the IDP, the cookies would be partitioned by SameSite/RPs.
- Say tracker.com asks websites to add CNAMES pointing to it.
- tracker.a.com points to the tracker.com's IP address
- tracker.b.com points to the tracker.com's IP address too
- When tracker.com gets the two requests, the cookies are partitioned by site, so it can't
join traffic between the two requests
Alternatives considered
There a few alternatives that were considered here, along the lines of First Party Sets, Storage Access API and FedCM.
It is unclear to us if there are security (e.g. DNS not being secured, are there network attacking vectors?) and privacy considerations (e.g. can this be abused? and if so, can we distinguish abuse from federation?) we are underestimating, so looking for overall directional guidance.
We would like to know:
- Can / should the FedID CG use CNAMES as a recommendation, or would we run into a wall long term?
- And if so, where should we go from here?
I'm specifically interested in learning more broadly from browser vendors, but specifically from WebKit on CNAME cloaking and bounce tracking:
https://webkit.org/blog/11338/cname-cloaking-and-bounce-tracking-defense/