API Endpoint for Updating `persistentUserId`
Overview of the Feature Request
We propose the addition of an API endpoint that allows for the updating of the persistentUserId for existing users to reflect a new authentication provider ID. This change aims to facilitate seamless transitions to new authentication systems, such as Shibboleth servers, by preventing user duplication errors and avoiding the need for existing users to create new accounts.
What kind of user is the feature intended for? roles: API User
What inspired the request?
The transition to a new Shibboleth server at our institution has led to significant issues with user account management. Existing users are prompted to create new accounts when they log in via the new server, leading to errors since these accounts already exist. This problem is rooted in the persistentUserId containing the old Shibboleth URL and the user's email address, which no longer matches the new authentication system's identifiers.
What existing behavior do you want changed?
Currently, there is no straightforward way to update the persistentUserId for existing users en masse, which leads to administrative difficulties and a poor user experience. We seek to change this by introducing a method to update the persistentUserId directly via an API call, thereby aligning user accounts with the new authentication provider IDs without manual intervention.
Any brand new behavior do you want to add to Dataverse?
Yes, the introduction of an API endpoint specifically designed for the purpose of updating persistentUserId values. This endpoint would:
- Allow for the bulk updating of
persistentUserIdvalues based on input parameters (current and new IDs). - Provide a mechanism to seamlessly transition user accounts between different authentication systems.
- Ensure that user account continuity is maintained without requiring users to re-register or manually resolve by a direct find-and-replace method within the database.
Any open or closed issues related to this feature request? At the time of writing, there are no open or closed issues directly related to this specific feature request.