Skip to content

email address is used as primary identifier, which is forbidden by OIDC #160

@xi

Description

@xi

This plugin uses the email address as a primary identifier, which leads to multiple issues (e.g. #126). The writers of the OpenID Connect (OIDC) spec also figured that this was a bad idea and therefore explicitly prohibited that:

The RP MUST NOT rely upon this value being unique

The sub (subject) and iss (issuer) Claims from the ID Token, used together, are the only Claims that an RP can rely upon as a stable identifier for the End-User ( https://openid.net/specs/openid-connect-core-1_0.html#ClaimStability)

I understand that this plugin is an implementation of OAuth, and not OIDC specifically. However, a growing number of OAuth IPs follow the OIDC spec, so I think this is relevant nonetheless.

I am not 100% sure what this means in practice though. I am pretty sure that it should be possible to change the email address at the IP and still log in to the same account. However, what should happen if I have an existing non-SSO account and log in using SSO for the first time? I think it would be reasonable to match on the email address in that case.

I think we need a separate table that maps SSO identities to local accounts. I am not sure how that would fit into the existing architecture though.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions