Page MenuHomePhabricator

Migrate WebAuthn on Wikimedia wikis to central domain
Open, Needs TriagePublic

Description

WebAuthn is enabled on Wikimedia wikis but only works if you log in on the same wiki where you have enabled it (T244088: Logging in at another wiki than WebAuth was set up fails). As part of SUL3 (T348388: SUL3: Use a dedicated domain for login and account creation) we are moving login to a new dedicated domain, meaning WebAuthn would never work. We need to tell its current users to either disable it (and switch to OATH presumably) or migrate it to new domain (ie. disable their current WebAuthn keys and create new ones on the new domain - WebAuthn keys are domain-bound so there is no way to reuse them). Fortunately, only a handful of people use it.

For migration, we would first need to deploy T363695: Create a Wikimedia login domain that can be served by any wiki to production, and implement T362715: Move credentials change to central domain at least for WebAuthn. Disabling has no dependencies, we could start that conversation any time. It would of course result in loss of functionality, but WebAuthn is kinda broken for other reasons too (see T242031: Allow multiple different 2FA devices, T244348: Recovery option for WebAuthn, T363652: publicKey.pubKeyCredParams is missing at least one of the default algorithm identifiers: ES256 and RS256, T358771: Unable to login on iPhone with Passkey Enabled, and soon T363639: web-auth/webauthn-lib must be upgraded to 4+ for PHP 8.2+ support) so probably that's not a big deal.

Related Objects

StatusSubtypeAssignedTask
OpenNone
ResolvedTgr
ResolvedOWresch-WMF
StalledNone
OpenNone
DeclinedNone
ResolvedTgr
ResolvedTgr
ResolvedTgr
OpenNone
ResolvedMstyles
OpenNone
OpenNone
OpenNone
Resolvedpmiazga
ResolvedTgr
ResolvedArielGlenn
ResolvedNone
ResolvedReedy
OpenNone

Event Timeline

applying the patch in T358771 could fix a large part of this issue and enable webauthn to work across domains.

But as task description says, the current WebAuthn keys are bound to a specific wiki domain so they should eventually be removed since they can not be migrated to auth domain.

Is there a way to reenable WebAuthn on auth.wikimedia.org right now? Or is it something to be planned in the future

It is enabled, just confusing to use because of a bug that tries to send you back to a normal wiki. You can go to https://auth.wikimedia.org/metawiki/wiki/Special:Manage_Two-factor_authentication, and any time you get an error message, just go to that URL again. After 3-4 attempts it will work. And if you already have a WebAuthn passkey for auth.wikimedia.org, that works fine as far as I can tell.

I'll deploy a fix for the bug on Monday.

matmarex renamed this task from Migrate or disable WebAuthn on Wikimedia wikis to Migrate WebAuthn on Wikimedia wikis to central domain.Apr 8 2025, 6:55 PM
Tgr claimed this task.

In the end, we didn't migrate or disable it, just asked the (very few) existing WebAuthn users to migrate (T389064: Notify WebAuthn users about SUL3 changes). Also ensured that the WebAuthn special page works both locally and on the central domain, but locally it's not possible to add new passkeys (but possible to remove existing ones).

Nothing else left to do here I think.

Bugreporter reopened this task as Open.EditedApr 9 2025, 2:21 AM

Reopen. Once SUL2 is fully disabled (or in another word, support of &usesul3=0 is dropped), existing WebAuthn users who do not migrate will no longer be able to login, so we need to remove 2FA from them.

Reopen. Once SUL2 is fully disabled (or in another word, support of &usesul3=0 is dropped), existing WebAuthn users who do not migrate will no longer be able to login, so we need to remove 2FA from them.

It seems like that could be a separate task @Bugreporter? Sounds like a post-cleanup task after dropping support for SUL2 (which may not happen soon).

If you agree, I can file one, and we can close this?

@EMill-WMF will decide how to handle those users, based on data from {T401742}.

Tgr removed Tgr as the assignee of this task.Dec 1 2025, 11:35 AM