Skip to content

Specify a dedicated DPoP-bound ID Token #7

@JonasPrimbs

Description

@JonasPrimbs

I really appreciate the draft, because it is a solution for many of my use cases.

However, I'm not sure whether it is a good idea to mix the DPoP binding into the ID token for the following reasons:

  1. Privacy: Depending on the OP, multiple user-specific claims (e.g., sub, name, ...) might be placed inside the ID Token without the client being able to control them via requested scopes. When sharing this token with other users or services, it may leak internal information (e.g., sub identifier) or personal information to third-party RPs that the user is willing to disclose only to their local RP (e.g., name, gender, ...).
  2. Dual Use: Many RPs may still need a classic ID Token in addition to the DPoP-bound ID Token. I can also assume that the claims of the classic ID Token should not be equal to the claims of the DPoP-bound ID Token, e.g., a classic ID Token with name and email claim to display these information in the UI to the user, but sharing only the name claim with a consuming RP (e.g., a video conference communication partner) via the DPoP-bound ID Token.

Therefore, my recommendation is that if the bound_key scope is requested and granted, an additional token will be returned in the token request, e.g., something like dpop_id_token.
In addition, claims of this ID Token should be a subset of the classic ID Token, which can be reduced by the end-user (who is required to consent to the AS explicitly, allowing this information to be shared with third parties) and the relying party (which can further reduce the requested claims for data minimization).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions