Page MenuHomePhabricator

Add WebAuthn support to Mobile apps
Open, LowPublic

Description

Following on from the breakage in T228588: 2FA logon doesn’t work on the iOS app and T227925: Unable to log in to Android app with two-factor authentication (2FA) I'm wanting to give a heads up about the incoming Webauthn changes in T100373: WebAuthn (U2F) integration for Extension:OATHAuth and to be deployed to WMF wikis (T227242: Deploy WebAuthn to Wikimedia Wikis) sometime after the PHP7 migration (T176370: Migrate to PHP 7 in WMF production)

No major rush, but it'd be nice to be ahead of the curve and have the support implemented (and released?) before it goes live on Wikimedia

Filing one bug for the two apps for ease of tracking

Event Timeline

Charlotte added a project: Technical-Debt.
Charlotte set the point value for this task to 5.
Charlotte subscribed.

@Reedy mentioned that we should consider the issues flagged up in T248339 when we work on this in future.

Charlotte lowered the priority of this task from Medium to Low.Aug 4 2020, 4:40 PM

Bumping this ticket that was discovered in iOS grooming. Judging by our closed spike, we needed to make the login form more dynamic to respond to the values returned in the "fields" key from the login call:

Call:
POST https://en.wikipedia.org/w/api.php (action=query&amirequestsfor=login&format=json&meta=authmanagerinfo)

Response

{
  "batchcomplete": "",
  "query": {
    "authmanagerinfo": {
      "canauthenticatenow": "",
      "cancreateaccounts": "",
      "preservedusername": "",
      "requests": [
        {
          "id": "MediaWiki\\Auth\\PasswordAuthenticationRequest",
          "metadata": {},
          "required": "primary-required",
          "provider": "Password-based authentication",
          "account": "",
          "fields": {
            "username": {
              "type": "string",
              "label": "Username",
              "help": "Username for authentication."
            },
            "password": {
              "type": "password",
              "label": "Password",
              "help": "Password for authentication.",
              "sensitive": ""
            }
          }
        },
        {
          "id": "MediaWiki\\Auth\\RememberMeAuthenticationRequest",
          "metadata": {},
          "required": "optional",
          "provider": "MediaWiki\\Auth\\RememberMeAuthenticationRequest",
          "account": "MediaWiki\\Auth\\RememberMeAuthenticationRequest",
          "fields": {
            "rememberMe": {
              "type": "checkbox",
              "label": "Keep me logged in (for up to 365 days)",
              "help": "Whether the password should be remembered for longer than the length of the session.",
              "optional": ""
            }
          }
        }
      ]
    }
  }
}

We would like to implement oAuth in the near future (here's the associated spike) - given that and the low priority on this one, is task still worth doing? Does it only involve making those fields dynamic or am I missing something else?

Reedy renamed this task from Add Webauthn support to Mobile apps to Add WebAuthn support to Mobile apps.Jan 27 2021, 11:39 PM
Reedy updated the task description. (Show Details)
Reedy removed a subscriber: Charlotte.

With the more widespread adoption of FIDO2 passwordless authentication (aka passkeys) across the web, especially on Android and iOS, shouldn't there be a renewed impetus to implement this now? I was quite taken aback that I was locked out of my account on the iOS app after turning on WebAuth via Wikipedia on my desktop browser. There was no warning on the website that the Mobile Apps don't support this 2FA method yet.

@Netsnipe There have been blockers in the past on this (T248339, T354701, T348388), so we have not considered this up to this point. We need to do a fresh investigation on what this change would take for the apps team. We have reopened our original investigation spike task (T231242), but note that this support is not on our roadmap. Thank you for flagging and bringing this to our attention.