-
Notifications
You must be signed in to change notification settings - Fork 3.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fallback mechanism on external authentication effectively makes email address a primary identifier #5872
Comments
This was done as a back up when we were migrating from v2 to v3. The fallback can be removed |
I generally agree that the external_id of a user should be the leading indentifier and thus we should be able to update a changed email address.... But what would be the expected behaviour in the following scenario:
I feel this is not something we can toggle via a configuration switch but rather a fundamental feature of the IDP-controller.. I hope you can understand what I mean. Regards |
@FSeifer What I meant with my response in #5876 is a config flag to enable the previous behavior, i.e. fallback to mail as ID. If the previous behavior was what you wanted, that should serve you well, right? Otherwise, in your situation I would go and update all the external_id entries in the database to their correct new values according to the IDP. |
@Ithanil For example in my specific setup, I am not even sure how the external IDP-ID is generated. It seems to be derived from the OIDC-Token somehow, but I can't confirm this, as the communication between greenlight and the IDP is encrypted... I guess the question is, what scenario do we think is more common? At the least, I would suggest to make the old mapping behaviour default again and give people the option to deactivate it via a flag like you suggested. Regards |
As I said, for that case it might be the best idea to reintroduce the fallback mechanism behind a config flag. Having the fallback as default is a bad idea, for the reasons I stated in the issue above. It is unexpected behavior and in the worst case it gives users access to other users accounts in GL. Anyway, keep in mind I'm just an external contributor and not maintainer of this project. |
In app/controllers/external_controller.rb (https://github.com/bigbluebutton/greenlight/blob/6b1f93d8ca2e536702e0c6638627b31345d3665e/app/controllers/external_controller.rb#L34C1-L40C8) there is a fallback mechanism implemented, which effectively renders the email address a primary identifier of a user. According to the code, it behaves as follows:
external_id
already existsexternal_id
of that user with the value according to the current loginThis is a very unexpected behavior in the context of external authentication, where the
external_id
should be the identifier of the user, and results in problems in environments where email addresses may eventually be reassigned to new persons.Consider the following:
I'm not sure in which context you would want such a fallback, but it should be at the minimum configurable and not be the default.
The text was updated successfully, but these errors were encountered: