Restricted account type proposal

Originally posted at SPHERE design google drive by @mirkovic, reposted here by @jdbarnes for discussion/comment

Overall philosophy

We may regard SPHERE users as falling into two categories:

  1. Full: Those that use SPHERE for research and are leveraging full functionalities
  2. Restricted: Those that use SPHERE as part of another activity (class, demo, evaluation of artifacts) as a tool, and need limited functionalities

Differences between full and restricted accounts

Full accounts are expected to use the full suite of our user interfaces, GUI, SSH and Jupyter and should be able to have full control over their account. They should be able to reset passwords, update accounts, and close an account if they do not want to use us anymore. They should be able to select their username if it is not currently taken. They are expected to have one account per email address.

Restricted accounts are expected to use some other UI (class, EAC, demo) and interact with SPHERE in limited ways. They are created programmatically by org owner, they live for a limited time and are then recycled to be used by new users. They get a programmatically generated username and password and the org owner has access to everyone’s passwords. Users cannot change their password, but the org owner can give them a new programmatically generated one if needed. It is useful for users to get their username and password via email. Users may have multiple accounts with a single email address, if they belong to multiple orgs at the same time.

Activity Full account Restricted account
Creation Via Web UI or mrg CLI Bulk by org owner
Username Chosen Programmatic
Password Chosen Programmatic
Multiple accounts per email No Possible
Password reset Via email By org owner via special UI
Reject resets via our form
Password change notification No By email
Login to SPHERE Normal via our UIs May be through special UI
Lifetime As needed Until org owner recycles
Account open checks Reject on existing email Create email alias on existing email

SUPPORT NEEDED: Highlighted requirements necessitate us to support email aliases. On a restricted account open we’d check if an email is already in use. If so, we’d create an alias and store it in a table that remembers username, original email and alias email. Alias is passed to Kratos. Password change on a restricted account gets emailed to user (we can do this from class or AEC UI, no need for special support on Merge). We set up alias accounts to forward to the original email address.

Thought experiment: what if all accounts had full access?

Activity Now Thought experiment
Creation Bulk by org owner By user via Web UI
Username Programmatic (usc430aa, usc430ab, usc430ac) Chosen (sunshine, jross, mattw)
Password Programmatic Chosen
Password reset By org owner via special UI Via email and our reset form
Login to SPHERE Normal via our UIs May be through special UI
Lifetime As needed Until org owner recycles, but special checks needed to see if user belongs to another org or project before recycling
Account open checks Reject on existing email Reject on existing email
Pre-create accounts Yes No
Chance of idle accounts Low Very high
Chance of support requests Low Very high
Statistics Account creation logs Org join logs
Use mode statistics (research/edu) Easy Very hard

This is possible but messy. Lots of actions that were automated are now user-driven, which opens space for user mistakes and support tickets that require prompt handling due to class, AEC, demo deadlines. Lots of user requests for support will come to us (reset email cannot be found, etc.) Org owner now cannot log in as a given user to debug issues, because they have no access to user password (and neither can we). We would also need special support by ops to create accurate statistics on class vs research users and use times.