Skip to content
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

External Login Flow Improvements #14670

Open
5 of 7 tasks
ahmedhamidawan opened this issue Sep 21, 2022 · 5 comments
Open
5 of 7 tasks

External Login Flow Improvements #14670

ahmedhamidawan opened this issue Sep 21, 2022 · 5 comments
Assignees
Labels
area/auth Authentication and authorization area/UI-UX planning

Comments

@ahmedhamidawan
Copy link
Member

ahmedhamidawan commented Sep 21, 2022

There are several issues with logging in to Galaxy through external login providers such as AAF (Galaxy AU) and Custos.

Known Issues:

Here are some of the known issues:

  • External linked account followed by local account creation will allow the local account to be created using the same email address as linked via 3rd party
  • If an external identity is linked to an account already, it should not be possible to link it to another account
  • Linking multiple identities to an account is broken (the initial linked identity is the only one that is used)
  • If an account is linked in the current browser session, even if you log out and try other identities or accounts, OIDC will keep logging you into that same account that was first logged in externally. (only occurs for the current session)
  • If an account was created by OIDC, the user still has the option to unlink it in User Preferences, meaning they will lose login credentials to that account.

Proposed Login Flow:

Here is a proposed login flow that might prevent the issues above from taking place:
image
Can be seen here: https://drive.google.com/file/d/10V5yqAb7Rf5snzrEchMj_-wv-xUmoUe0/view?usp=sharing

Usage Scenarios:

Here are all of the identified login usage scenarios (and their possible solutions*):

  • A new user registers using the username & pwd
  • A new user registers using Custos
  • A user with an existing username & pwd links an external identify and, from then on, is able to log in using either the username & pwd or the external identity
  • A user with an existing username & pwd attempts to log in using an external identity without having linked it
    • Fixed: Return to login saying this account does not exist and needs to be linked or created first
  • A user with an existing username & pwd registers a new account using an external identity
    • Fixed: New accounts are created explicitly by registering and a splash screen warns of a new/duplicate acct
  • An existing user links multiple external identities
    • broken/bug
  • A user that created a new account via Custos unlinks all external identities
    • Solution: Require a password to be set before unlinking the last identity
  • checked scenarios are fixed already
@ahmedhamidawan ahmedhamidawan added area/UI-UX area/auth Authentication and authorization labels Sep 21, 2022
@dannon
Copy link
Member

dannon commented Sep 21, 2022

@ahmedhamidawan Thanks for setting up the planning issue! ping @neoformit

@neoformit
Copy link
Collaborator

I'll review with Maddie in our meeting next Tuesday and add a few suggestions. Thanks for setting up Ahmed!

@neoformit
Copy link
Collaborator

@madeline3000

@madeline3000
Copy link

madeline3000 commented Sep 26, 2022

Hello all,

Here is a user flow we mapped out earlier this year.

Galaxy AAF process mapping (2)

https://miro.com/app/board/uXjVPTAX1xM=/?share_link_id=212779270450

The main issue we encountered was how an existing Galaxy user with institutional credentials could "link" their account so their AAF (custos) could merge with their existing Galaxy email account. The current flow was very confusing for the user and involved many steps (see flow diagram). Our solution to this was to present the user with a linking screen as soon as they validated themselves through AAF, and then ask them to input their existing Galaxy password to verify they indeed were the owner of the existing account. This solution was validated thru consultation with technical devs, and through usability testing with Galaxy AU users.

Existing user - https://xd.adobe.com/view/12c1f83a-b7b1-4df2-be21-1e94361d77b6-4792/
New user - https://xd.adobe.com/view/5ac417ba-68e1-437b-8038-589a9166520c-0f97/

  1. An existing user links multiple external identities
    broken/bug
  2. A user that created a new account via Custos unlinks all external identities
    Solution: Require a password to be set before unlinking the last identity

I don't think we have considered these scenarios yet.

  1. External linked account followed by local account creation will allow the local account to be created using the same email address as linked via 3rd party

@neoformit let's test this one on our end.

@ahmedhamidawan @neoformit what are next steps?

Madeline

@neoformit
Copy link
Collaborator

neoformit commented Sep 27, 2022

Should #3 return something like "sorry, an account already exists with that address"? Though I guess if they can do this and validate their email they should be allowed to take ownership of the account this way. This one is hard, maybe shelf for now?

I think we should start with the most tangible (preferably most common) use case and work on a fix for that first. Probably the OIDC login to existing account flow, with the "link accounts" dialog. The backend should already be available for that, but it might need a little jigging around.

Then we can focus on fixing the next user case.

What do you think @ahmedhamidawan?

@madeline3000 what do you want to test out on our end?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/auth Authentication and authorization area/UI-UX planning
Projects
None yet
Development

No branches or pull requests

4 participants