[Openid-specs-ab] OIDC Session Management challenges with ITP
David Waite
david at alkaline-solutions.com
Sat Jun 19 04:57:47 UTC 2021
Hello Jake!
I attempted to define something similar to this a while back,
https://bitbucket.org/openid/connect/raw/293dca14cd1352bbb101d15bcac4a6f3825a4b15/distributed-token-validity-api.txt <https://bitbucket.org/openid/connect/raw/293dca14cd1352bbb101d15bcac4a6f3825a4b15/distributed-token-validity-api.txt>
The motivation was to:
1. Create an API which could easily be proxied/cached such that an RP could run their own infrastructure for checking validity (for scaling/reliability/latency reasons)
2. Investigate ways other than reactive HTTP proxying to synchronize this data, such as using a distributed ledger (described in a separate proposal in the same repo).
In retrospect, #2 was a step too far - I also was planning an investigation of using secevent-based signalling, but dropped this due to low interest.
I did a presentation on this on the last IIW; I got the impression that the slow death of third party cookies had increased interest in this sort of approach, but I personally don’t have time to lead that effort at the moment.
-DW
> On Jun 18, 2021, at 9:13 PM, Jake Feasel via Openid-specs-ab <openid-specs-ab at lists.openid.net> wrote:
>
> Based on my searching of the mailing-list archives, it appears to me that there is a wide-spread acknowledgement of the problem that third-party cookie restrictions impose on the current OIDC Session Management draft spec. In short - using hidden iframes with prompt=none to check the session status at the OP is not viable when browsers are restricting the OP session cookie.
>
> I have a proposal for how to address this limitation:
>
> The front-channel logout and back-channel logout drafts both define the "sid" claim. There is some discussion of it here, too: https://bitbucket.org/openid/connect/issues/1031/sid-id-token-claim-definition-and-when-to <https://bitbucket.org/openid/connect/issues/1031/sid-id-token-claim-definition-and-when-to>
>
> My understanding from reading these specs is that both have the assumption that the "sid" claim is first given to the RP in the id_token as part of initial authentication. I would like to build upon that assumption and suggest that this claim could be used as the basis for a new grant - "session_check" or some such. It could be another call to the token endpoint, secured in much the same way as the original auth code grant (verifying client_id, redirect_uri, etc...). Rather than the code, it would pass the "sid" value. In response, if the session identified by the sid is still current in the OP the RP would get back a new id_token with updated claims (exp, acr, auth_time, etc...). It would be reasonable to assume that if the session in the OP has an idle timeout, this call from the RP would reset that timeout.
>
> I don't see any obvious reason why such a grant would not work well for any RP that is currently capable of performing an authorization code grant - including single page apps without a back-end component (relying on CORS). This has the advantage of avoiding all iframe and cookie limitations, while building upon existing patterns such as the "sid" claim.
>
> What do you think? Is this a viable approach?
>
> --
> <https://www.forgerock.com/> Jake Feasel
> Principal Engineer | ForgeRock
> t (907) 229-1865 | e jake.feasel at forgerock.com <mailto:firstname.lastname at forgerock.com>
> twitter jakefeasel | web www.forgerock.com <https://www.forgerock.com/>
> ForgeRock values your Privacy <https://www.forgerock.com/your-privacy>_______________________________________________
> Openid-specs-ab mailing list
> Openid-specs-ab at lists.openid.net
> http://lists.openid.net/mailman/listinfo/openid-specs-ab
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openid.net/pipermail/openid-specs-ab/attachments/20210618/79750405/attachment.html>
More information about the Openid-specs-ab
mailing list