The current version of Single User Login (SUL2) provides central authentication that ensures users have a single identity across all Wikimedia projects, including the ability to log in on one wiki and be automatically logged in across all wikis. SUL3 will move authentication to a dedicated domain, to improve security and ensure compatibility with browser anti-tracking measures.
Objective
This work is part of:
- WE 5: Evolve the MediaWiki platform and its interfaces to better meet Wikipedia's core needs
- KR 5.1: Increase sustainability of the platform
Context
Currently users enter their credentials and login on a particular wiki. A series of redirects are then used to create a central session, which is used to authenticate the user on other wikis. This has the benefit that users never leave the wiki they are on and the wiki's community can customize the login and account creation pages to fit their needs.
However, it also causes the following issues:
- To a web browser, the redirects used for central login are indistinguishable from cross-site user tracking and browsers are increasingly rolling out anti-tracking measures that break central login.
- As users might need to enter their password on any wiki, a XSS vulnerability on any wiki can potentially lead to password theft. This is compounded by the level of customisation provided by extensions, site-wide Javascript and gadgets on individual wikis.
- Browsers store authentication-related data per-domain, so per-wiki login degrades the user experience, privacy and security of authentication, by making it harder to manage cookies, passwords and WebAuthn passkeys.
Disabling local login and moving authentication to a dedicated domain requires users to directly interact with the domain that is setting the central session cookies. This will ensure compatibility with browser anti-tracking features, which are increasingly blocking cookies set by domains that the user has not directly interacted with.
It will also allow us to improve account security by limiting authentication to a single domain, which can be locked down to a greater extent than individual wikis to further prevent XSS vulnerabilities.
Scope and constraints
In scope:
- Moving login, account creation, password change and reset to a dedicated domain
- Ensuring that autologin still functions as today, requiring users to sign in only once
- Full compatibility with existing CheckUser workflows, including cross-wiki on loginwiki
- Full compatibility with temporary accounts and supporting their rollout
Out of scope:
- Changes to the clientlogin API, which must remain as-is to ensure compatibility
- Improvements to WebAuthn support, e.g. to support multiple passkeys
Constraints:
- Minimise non-essential changes to user experience, by preserving the current flexibility and customisation provided to individual wikis
- Maintain account security and minimise potential vulnerabilities by supporting only required functionality on the authentication domain
- Consider long-term platform sustainability and the impact of introducing new authentication mechanisms
Success measures
- Central login works in all browsers with tracking prevention
- Phased rollout to 100% account creation and login on web