[OAUTH-WG] Re: Call for adoption - First Party Apps

Neil Madden <neil.e.madden@gmail.com> Wed, 11 September 2024 10:01 UTC

Return-Path: <neil.e.madden@gmail.com>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EA31AC1CAE83 for <oauth@ietfa.amsl.com>; Wed, 11 Sep 2024 03:01:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.108
X-Spam-Level:
X-Spam-Status: No, score=-2.108 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2MeJussdCQNI for <oauth@ietfa.amsl.com>; Wed, 11 Sep 2024 03:01:23 -0700 (PDT)
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 80628C169401 for <oauth@ietf.org>; Wed, 11 Sep 2024 03:01:23 -0700 (PDT)
Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-42cacabd2e0so16119965e9.3 for <oauth@ietf.org>; Wed, 11 Sep 2024 03:01:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726048881; x=1726653681; darn=ietf.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=olkg+K0P6GMwxwbepToONUAeuJhZE7mAGg8UI2M21a8=; b=gUMQafKoF1Aj+vA71B6cOLMogxcExdSv9LbR5GFt6vb3LgjB7lb7nStc73a9sUxRvF KzqxXb3V4q+Nj11gK5oJxbWCEPwDfYHQkFtt6ACBBvdPUMJzFh0eDwiaDhmcgPGTrneJ wrSXBPUmsT93QzIU6rmnRiLN/caNrjg2ap6diMSX1TTRQYD76t7RvxjBRm3hf1Ca9YHw Gy1ey3qDjSS7/cdIJWkMgsEmLh2CKm8zCs0UuJDaigA2Zue0F7GYy9RWt2L14vjxgVNt 6PFDZts/TY64MtPd3lJ5tkWfrLlky0qXJ550bMWajsCOX86hvkLOULwRN0rG6e+qlc5V pGXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726048881; x=1726653681; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=olkg+K0P6GMwxwbepToONUAeuJhZE7mAGg8UI2M21a8=; b=tzAMJng7dnUHAyvRwgFlM6mTCT+WIiEh1uCgCKI+Eojx22+vj0weoSGCC3AjfGi8bJ F4UpECl/3vT6pDRW/ds3heI+GNvYbdvjT4RY9SOoEhQVSXAsXvl0o5qu4g73H4i9VgXx C92IhEE3kdGh5KjIBUiFi6SUqYtD8a9BZFJD9QWVrHLk8ijjPyFTART5exdIMSQl8N2w yJBo5nOlQtnaf3Y87TXQbVoV3acgphZoD1B7QYubzhtfzn862HP0Vy8Mu6zTW+igZ5Kg h/2/5KUdKaLsLxK80CU/+1SQ10h1rk3JuABKDtsFg9OockcFFEWjEkOGEjMf3DAQv04r 3YfQ==
X-Gm-Message-State: AOJu0Yy5rxLp0xznoK7iARU+o9IZwbDmcmVvp8mgKy77fnCW4TuUfjn/ HM0NsTm261cSCPCfv4XIjQcshSmdmZfsQKcrQokeHwrpzVq9iQ3ekWw/c2Kj
X-Google-Smtp-Source: AGHT+IHC20HU4bb/RqQkM9LX+16kDkImeK+0CsroHnZiNe1jH4Gg0ZUsuLbJGFePYCQGUYG5J8Lt+Q==
X-Received: by 2002:a05:600c:4fc5:b0:42c:acb0:ddbd with SMTP id 5b1f17b1804b1-42ccd30c1e2mr18839635e9.7.1726048880477; Wed, 11 Sep 2024 03:01:20 -0700 (PDT)
Received: from smtpclient.apple (185-147-91-181.customer.gigaclear.net. [185.147.91.181]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-42caeb444b0sm137923435e9.21.2024.09.11.03.01.19 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 11 Sep 2024 03:01:19 -0700 (PDT)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.10\))
From: Neil Madden <neil.e.madden@gmail.com>
In-Reply-To: <CAGBSGjrEUBa7jT1XrCcq9p8u_jV9n=87gEwq1OSyLow0V_P2-w@mail.gmail.com>
Date: Wed, 11 Sep 2024 11:01:18 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <B5D3A016-DA7C-4709-9C0B-38C57ECE0D3B@gmail.com>
References: <CAD9ie-uur2NSN+BBMFfhv9UcfZtmQsByUhpyr1huvQiC+5PX8g@mail.gmail.com> <F68A8B14-8511-49E6-A06F-5BBE5EE549CC@gmail.com> <CAGBSGjr8S+LixUpEMgNDbcvRgF0nef+01HLfa0yvxxjDaqKS1w@mail.gmail.com> <F7ECC695-67FF-4EFE-8ACB-731292028282@gmail.com> <CAGBSGjrEUBa7jT1XrCcq9p8u_jV9n=87gEwq1OSyLow0V_P2-w@mail.gmail.com>
To: Aaron Parecki <aaron@parecki.com>
X-Mailer: Apple Mail (2.3696.120.41.1.10)
Message-ID-Hash: N53LQYPNL3HKD67YPBVYM3EAQEM2PARM
X-Message-ID-Hash: N53LQYPNL3HKD67YPBVYM3EAQEM2PARM
X-MailFrom: neil.e.madden@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-oauth.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: oauth <oauth@ietf.org>
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [OAUTH-WG] Re: Call for adoption - First Party Apps
List-Id: OAUTH WG <oauth.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/V3a7NlZ30YwaP42mUo_tWOcer8Y>
List-Archive: <https://mailarchive.ietf.org/arch/browse/oauth>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Owner: <mailto:oauth-owner@ietf.org>
List-Post: <mailto:oauth@ietf.org>
List-Subscribe: <mailto:oauth-join@ietf.org>
List-Unsubscribe: <mailto:oauth-leave@ietf.org>

> On 10 Sep 2024, at 16:43, Aaron Parecki <aaron@parecki.com> wrote:
> 
> Please remember that not having this draft will not stop people from building native login experiences into apps.

That is not a good reason to standardise it!


> This is particularly a problem for companies that build authorization server products that are used by people building apps, since the result is then that they end up building proprietary APIs for building native login experiences, and if these companies are large enough it turns in to a de-facto standard anyway.

Given that I spent a long time at ForgeRock, working on their AS implementation, I am familiar with this. FR’s own implementation of this API was inherited from its authentication framework that came from Sun’s OpenSSO (and Sun/Netscape’s iPlanet before that). This was in turn based on Java’s JAAS framework, with its system of callbacks (NameCallback, PasswordCallback etc). This is effectively a technology-agnostic way to prompt for various credentials and identifiers. But given that OAuth is the *Web* Authorization Protocol, we already have a nice way to describe these requirements: HTML. And we have this lovely framework where any app can popup the system browser to handle all that for you in a consistent way, with shared cookies (with approval), and so on. That all works right now.

> 
> > I’m yet to hear a genuine argument in favour of the “native experience” that doesn’t boil down to aesthetic preferences.
> 
> "aesthetic preferences", also known as "user experience", is absolutely a valid concern for many people.

Actually, no these aren’t the same. The aesthetic preferences that dominate these discussions of those of the UI designers and product managers, which is often focused on looks and branding and keeping users within the app. The UX is often objectively worse in a “native experience”: inconsistent across different apps, no SSO, etc.

> 
> > locking down the API to first-party apps only sets a precedent that eg the official BlueSky/Twitter/Facebook app will always have a different/privileged login experience compared to third-party apps
> 
> This has very much been in line with the goals of OAuth from the beginning, giving third-party apps a different experience from first-party apps. I don't see this as a problem.

Yikes! From my POV it was precisely to allow third-party apps to have safe access to the *same* APIs that first-party apps used. It was because, when there wasn’t a safe way to do this, apps instead directly asked for the user’s username and password and then did it anyway.

> This is also becoming more relevant with the prevalence of the pattern of using a first-party native app *as* the authorization server for other native apps on the device. (e.g. a health tracker app wants to get access to your Strava data, it starts an OAuth flow to the Strava native app, where the user has to log in and approve the request. It would be very weird for the Strava app to then do a web OAuth flow to the Strava website. Instead, I have seen a number of apps that build out the authorization approval screen in the native app, so there is never even a browser involved in the third party OAuth flow at all.)
> 
> Also please note that the current draft never mentions passwords as an authentication mechanism. The first example given is passkey login, which as Tim mentioned earlier in this thread is phishing-resistant on mobile devices since it's handled by the operating system rather than the app.

Sure, but what is passkey adoption now? Are there any good stats? The reality is that most apps now and for quite some time in the future will be using passwords, OTPs and other phishable credentials.

— Neil