Skip to content

OIDC Strict cannot handle existing users if OIDC connection is mismatched #2225

@Drulikar

Description

@Drulikar

Describe the bug
As explained on discord, OIDC strict mode prevents all user editing, and aborts logins if it ever tries to create a user that already exists.

To Reproduce
Steps to reproduce the behavior:

  1. Start TGS in non-strict OIDC
  2. Create a user with a CanonicalName that will be a future OIDC connection (but either have no OIDC connection or have something that isn't the new OIDC connection exactly)
  3. Restart TGS in strict OIDC
  4. Attempt to log in as the previously created user

Expected behavior
User is able to log in (existing entry is trampled/edited)

Logs
error.txt

Server State: (please complete the following information):

Additional context
https://discord.com/channels/484170914754330625/653425022966169620/1373802880577966182

Solutions:

  • If an OIDC connection exists but needs to be renamed: update OidcConnections set ExternalUserId='NEWOIDC' where ExternalUserId='OLDOIDC';
  • If it doesn't, either drop back to non-strict and add it, or create the entire row in OidcConnections
  • Allow users to be deleted
  • Allow users to have OIDC connections edited
  • Allow TGS to edit an existing user on login that collides

Metadata

Metadata

Assignees

Labels

BugSomething's fuckyReproduction RequiredReproduction steps required for issue

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions