Conversation
…efresh DPoP header
…y token exchange grant for simplified specs
|
@JonasPrimbs The benefits of using Token Exchange, as I understand it, for situations in which you want to on-the-fly request an ID Token for an audience that is not the client. For instance Alice wishes to authenticate to Bob over email:
I'm working from our previous discussion and your issue here: However the scope of what you are proposing with Token Exchange goes beyond what we are trying to do with the OpenID key-binding standard. With OpenID key-binding we are simply adding DPoP security to the traditional OpenID flows. In our standard the audience is always the client/RP. We are also attempting to stay within the existing flows and access patterns of OpenID to make this a straightforward and simple upgrade for OPs. Each of our flows involve adding a new parameter and header to existing flows. Switching to the Token exchange paradigm would require completely new request patterns. For instance there are many circumstances in which using a key-bound ID Token in a browser with non-extractable keys with greatly reduce the risk and severity of info stealers and XSS attacks. Adding this additional protection ID Tokens without requiring significant changes to OPs is a major goal of spec. I would very supportive of this token exchange for scoped down ID Token as an extension to key binding, but I don't want to do it in this spec. Let's know what you think. |
I merged PR #5 and #9 and replaced the Authorization Code Grant, Refresh Token Grant, and Device Authorization Grant with a Token Exchange request.
This comes with the following advantages:
audienceandscopeof the requested token. This allows the RP to obtain an ID Token withaud=rp-frontend, and a DPoP-bound ID Token withaud=rp-backend, and request only a reduced scope for the DPoP-bound ID Token, e.g.,scope=profile emailfor ID Token, andscope=profilefor the DPoP-bound ID Token to not expose the EU's email address to third-party RPs (see the P2P video conferencing example in the introduction section). -> Solves issue Specify a dedicated DPoP-bound ID Token #7 because technically, the DPoP-bound ID Token is then a dedicated token independent from the ID Token.