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, say idp.com, to host and manage its authentication system, typically giving them a rp.idp.com subdomain. @hlflanagan did I get this right?
- When users navigate to
rp.com they get redirected to rp.idp.com
rp.idp.com, hosted and controlled by idp.com, handles the user's authentication to rp.idp.com and sets rp.idp.com first party cookies
rp.idp.com navigates the user back to rp.com with the user's identity in the URL parameters.
rp.com takes the user's identity from the URL parameters and logs the user in
rp.com embeds iframes pointing to rp.idp.com to 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.com to an agreed upon IDP IP address, to be used in replacement of rp.idp.com.
- Step (5) and (7) are no longer a problem because
rp.com and login.rp.com are 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/
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
The Problem
The Proposal
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.
Alternatives considered
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:
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/