[Wimse] Re: Request for Input: Best Current Practice for OAuth 2.0 Client Authentication in Workload Environments

Justin Richer <jricher@mit.edu> Thu, 01 August 2024 21:30 UTC

Return-Path: <jricher@mit.edu>
X-Original-To: wimse@ietfa.amsl.com
Delivered-To: wimse@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6E8B4C14F6B8 for <wimse@ietfa.amsl.com>; Thu, 1 Aug 2024 14:30:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.105
X-Spam-Level:
X-Spam-Status: No, score=-2.105 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, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mit.edu
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 pG9Nnf7G2k6a for <wimse@ietfa.amsl.com>; Thu, 1 Aug 2024 14:30:53 -0700 (PDT)
Received: from CY4PR05CU001.outbound.protection.outlook.com (mail-westcentralusazon11020102.outbound.protection.outlook.com [40.93.198.102]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6A7C5C14F6F0 for <wimse@ietf.org>; Thu, 1 Aug 2024 14:30:53 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=StTCzyk4/BCA4+zN0PjAwgnU92QYM0lg4S1LYnvtTqMPh2gx5JWVdg9P+/AxeEUSepnKBna8Qa7J5XwXGIrhwjRjMokYheHNxlPWio7SvEyXrJS6LTIBfdc1uxkf96NTfKlY+POIHVLcS4pnVdOEtClqxfe8W0mzoWyafX+WePrICE2HpDo47tGHhp9QtmG1TLX7N/QERIECQuRW2IrklOM1lcGEuIpfvCSNTW14pbU9Pb2qSzWpM97jLnolnzcqrRH2o9L7AP0F7VK4bABqj1Z9ED/QpqyMit0ScsivhS7i69hopcGvXFAgTsGKv2WKhPTGY+hU0Kk+ibGYBPReBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=XWHRGHwgu9FOmo9U60B9EiFpKyYzn8KPYoZUzh2JeE4=; b=b8Q9Bmb7D38lNxSg3v+LCD7QjoWQFkFCFvUF9y5EZ/PjrH5uQWAKP29y02NursexcqgICwRevmfn8hiFDDJuEHhvU6c+J1x1gyxJSuWlqWca5GJnvHF90jLtmcKkFiKvHhKRjboxggjqt0nS5NUk1kwjgyFI4gn9THT1pG4y6D+iY5Im606WIM6EKUozfY7ZNwIQ+QER6L39Hgb2tgE+pkAeEO7lLUvJ2ZaOTfcHaAiHiWPic67wrEL5qyrujSfOd6eRYt4g9W6buC4NaaZ4F8PuDiGwHOvDu3VwbDDpTUfZB1Vg4cIndW+nj5X3KmVpftw0YLhnbXrLtWMMy3tlGg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mit.edu; dmarc=pass action=none header.from=mit.edu; dkim=pass header.d=mit.edu; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XWHRGHwgu9FOmo9U60B9EiFpKyYzn8KPYoZUzh2JeE4=; b=IImG/hkLXZ96cgGIdkF/TjjMDgtwPvIkcxXQcBK7OpJCkBc8JlF9Dut2I+e4Ze6HDUr6hxBB/mS+Qju4OwKLhBniJySxJG1kbCDc9/ICQElD9q4icHHD4IcxWgm6VgjJ7NLbD4Qkq0HByZZZjdidglyc/FGdrubCaXHUiGzOoIo=
Received: from LV8PR01MB8677.prod.exchangelabs.com (2603:10b6:408:1e8::20) by SA1PR01MB8296.prod.exchangelabs.com (2603:10b6:806:388::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7807.27; Thu, 1 Aug 2024 21:30:51 +0000
Received: from LV8PR01MB8677.prod.exchangelabs.com ([fe80::e7d6:999:270f:a820]) by LV8PR01MB8677.prod.exchangelabs.com ([fe80::e7d6:999:270f:a820%6]) with mapi id 15.20.7807.026; Thu, 1 Aug 2024 21:30:50 +0000
From: Justin Richer <jricher@mit.edu>
To: "wimse@ietf.org" <wimse@ietf.org>
Thread-Topic: Request for Input: Best Current Practice for OAuth 2.0 Client Authentication in Workload Environments
Thread-Index: AdrhoMjopmD8yk6CTG2adWt4Qe20MQCuUV0A
Date: Thu, 01 Aug 2024 21:30:50 +0000
Message-ID: <44F2C920-FFBC-46E1-9CAB-A2CE40FA1E6F@mit.edu>
References: <DBAPR83MB0437B6623ED287A218D1FE4F91B72@DBAPR83MB0437.EURPRD83.prod.outlook.com>
In-Reply-To: <DBAPR83MB0437B6623ED287A218D1FE4F91B72@DBAPR83MB0437.EURPRD83.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mit.edu;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LV8PR01MB8677:EE_|SA1PR01MB8296:EE_
x-ms-office365-filtering-correlation-id: fe4ada8c-1667-415b-157d-08dcb271374b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info: e80XKCw1VSLm1QkhhqB+FUoVEqOf/laZrCJeiJuxDXhCJPwzSFFBBGCCQz3NraYZRx2Rttethuaah88Gb716ULNxZAAtnKAgPddzt4j9/NC3YKSXbQeiQAM8IuTAyUwHKzwbagnC1a5t0kl22GTRobx7VQ6u/GlFcHyagTDnfflx3hTy0L6HqLEP6iWseoULTld5kQt10oCKmJaLutvg2zFEEKFkEXNKVeYxhMEjGN8nq8AMJDYc5a8Z3JHkURxLZ5OZs8m8ht/wEbZHXszOhdtgUErViSwNp+65UyaVpCU0vUmoAtcU7fd6GbXJej8RMOwS1RMI1JOOayf2TxHBJYe0WjbwqBNA44tftAWJJhZmH1FjDRmLFNNxvHV8+zV4bzOKZHwmuFZvXGFDpDHSuJ7IdYu6Ib2K4dG7EFhJHaS+Sjum17MQXWCrNzMlc20PSycg7jYK4iZlXqFfQsKKV80fkILFJc9REnt5nXzsA6zPDfh4JDXfIPhZUQwOsFvQZfgqAFzdt7ESHZIHTOVB3To8rReKI25IurIVz++bvES3mA+sQmmmecw0tDySa/HFq2rYTSj3OKxeTTVv5CoqbtYitoWK1gOap3uyxfiJG3+8H3OZhHq4kMUkU1dDGAsdDIBalijXVqRmtSwC6dzi2GoxNMuxDbM4G8//mdgkfgF8+yLXvJxUhSJMFe7BXPXn3DoZBYAoFC7xtjLS85edMFxlzK92xEf8Yof5Jhqydl8w/TcoBEYGcS4tZzRi/xNX9v/5INedJgHwE9S8AwJWmutUQS/XMbz/jVVjFgNxfo81yRX3BLc48klOu1KS3FSbA63dAzPBq5LLTFYYxvpeoL6drFl2uArafPxyzx8nZ3U3N4vPKahbHhE2raWWA4jziYtrCNSjVW9kFFhJ31atw8GfOdzqn13sFkSw2Ven2dFlb+v+Zv/3NyFtCWjrj+aCoDauKVXzsw0jX2rm2RRzyvZnuCGvHL/lAMuFgJ6pLWpNLuTfTZFJNSxetV0a4LKe6JV1D6OdhEyPu9PyfqAwpo/AjWo7iMmjRlUE6mXVw7p5hXzcFTcGL+icvNSb/RR79vrADrvY8Amf2trU9HMniZNOyNim4BTCdyVlTbAWQ8DbEW6aNp3gefkXquDwLHdVRuY799zbkDqiWWHWCyzvfNEgevL9p8fY4+XHW6U98NHK/NVVjo0qWnFlsX3bTzf9NKB6a2RjdcAach3P7iS2YU+qk9skeksCvQ5LZVlwxTOO3V6w3f8gB98vYVNWgg8HLQHsi2K90Yl0FafRKdkolxyL6ZBe6IRxlVbmMgbBJiEtc+zGvvReMVkw3IVyt+YhiSB+B5yrNyDVc0mW6f1XRJ5LequgzLyCQVaqfPQvlqo=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV8PR01MB8677.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: N+DtCsYWaGSIVSOX2d12E9l86fKJbl7v6x8igpptTM+0BbPC0RCAZYsuJRM0lWgEiV8ZZPpdFlgWHdytM/a0duAm4u0sBHIqSMVp7HFWIoLugbaBwNzm3AS08lgkCRtbWZAWC9VQdEc8oHFIhdQ8YNmbRmfBQz3A2ewWRmQv2NkKI7VkJx4vUvjx4piluR63wkyprNapFtS5tFfN216NIYQUytA/OThjKfZTvJyi6oOkNv3VFYWAEVVGQlse3T3WpujKw2asko8upPJOFcSTrmGt4+QMFH/0KvWAZuMAvPuxtkXrvfWfi9x6X3+1GsTzdMRHYuaudy1GlLeZfycRTHYfsrs/d741VH4MptC++vmlPUabPxi1yLmMXI3ilr22T7nRnDDca874k3k39KjSxjqZyyqIK0cInEDHYKCA4OPdI1SP6ZXmMhQUGns6VDZMwUCYfNo6l90vMFBRy7gAx9KTqHnRgcTDBgs+dlvpC0jXJPeZ2pKJPpOmp95xqjnppYwtNwEfNO5UT5tBmrB0htlrRCQXvJoN2XOPbSt0WEYCFZ7MIv/GystNa3g5Xh7xydnSGwk50GCl3pQNs1vLGpC4CAw4mVfZjgmD3ut8uMYsaEiFIBgqZd+HFeYHhJxWWF/WDniI0oKlJaWmhGrHaPAXvzIAw0o0aqI7d3/nHeLbfBz2YTu7Pik9G/X7tSqTDzuCLm0L53UBVNLq6imFHMdl0nIcB6+hmzZqPDaWNnRAPAhq29LZ4jqrpfNT5VAUZDZ6a66rqnr6T9SWstkwnCvSgeI29RpOMPZWK0wy4pP/3nASNlESddI2s5TblbQlHDHUWc9cP76p96yfP3zUjhrRAyQEndvCRqiNtrg/0OblbcLVI9nbe39oGGhn7EJZvakgeDV4NjnKXmf5MfLqNkRMjj+Mv4BewD8KMi+Qc6eBRNSRrlvRHwRNYF70dUwuT/aqs0KFMg6q7h6SNALx6lqOSgQaQx5aF1je6XoyvO38y1i7KjOozqew2QO/Zkze95KlpvWr/5EiE1+0mJgzJIntczQVFXhhqOn3oXQGMEYcR37DdKsktBs2KqhS/cVnU8wBYB6QsJWldV+PiEJUTYuX4XUZ3ohzdat3W1tmc1KVpnLXtaHSR73Qp1+g8nSp7qx7jSTUJ6sQeD+TyDe2x1ah8qxsfkQAHOZgvvhRn57/nuyCiCEsHlUTRHlbCGhizxKf9kpVzx0lrvmprLWSCS1mORBbVlcvIweSPlPQ0B+KQm/9R2qRudd9n4PX+VCOtng/LNdmI2Zo5Iy66GXl70ciBN4OijG5n4q3HISnstgUu89Y6AN0vIa7lrXl07WXfvxSWRUsqcc2iU0i+ykmqZLn4/dNRfNKhv1iHBI7+yaQoVMevgKMhDZ5yHCeKyAxwhCDJvqHrKV4/7b3OAT+NQzHJiccQfoKlvEHnWmOw+wut3BERlc6hrgQ6Jq19qo164u/rsl8kNP3NQl0isdJAv7V9rR5eJl1SieiIxlZ4TbG24vflAcGGjfo7ErFPV3pO/7Qz5cIKjRYBGA+s7u9R/QSbgIx4NoN0uW6aYQO32TZHcGI3jGPcvzopiXFJLb9
Content-Type: multipart/alternative; boundary="_000_44F2C920FFBC46E19CABA2CE40FA1E6Fmitedu_"
MIME-Version: 1.0
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LV8PR01MB8677.prod.exchangelabs.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fe4ada8c-1667-415b-157d-08dcb271374b
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Aug 2024 21:30:50.8339 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: i/I0YxHJiiWwfsuF1zKX6QVnpwl6YdvZ2LsrYaSEoi1MPEOI3r6wXSuLfRYOxSAX
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR01MB8296
Message-ID-Hash: YRAE3Q4NZPQBNRM4O5POQURHY6IFHEPG
X-Message-ID-Hash: YRAE3Q4NZPQBNRM4O5POQURHY6IFHEPG
X-MailFrom: jricher@mit.edu
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [Wimse] Re: Request for Input: Best Current Practice for OAuth 2.0 Client Authentication in Workload Environments
List-Id: WIMSE Workload Identity in Multi-Service Environment <wimse.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/wimse/jwpwNphsuvBvqzHfrvuN2Tuo22s>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wimse>
List-Help: <mailto:wimse-request@ietf.org?subject=help>
List-Owner: <mailto:wimse-owner@ietf.org>
List-Post: <mailto:wimse@ietf.org>
List-Subscribe: <mailto:wimse-join@ietf.org>
List-Unsubscribe: <mailto:wimse-leave@ietf.org>

Chair hat off — this is entirely my position as a member of the community.

My answer to the question is a form of (B), but I think there’s actually more to do than just add some OAuth considerations to the document.

As the document stands today, I do not believe that it addresses the milestone or deliverable as defined by the working group, in either its stated scope or its content. I would like to offer what I hope is a helpful framing of the goals that I believe this document should ascribe to. I believe the document can reach these goals if we choose to, but it would need a good amount of work to get to that point.


1) It should be informational, not BCP. We are far too early in the work of WIMSE to determine what "best practices" are by the IETF definition. [1]


2) It should explicitly enumerate and address the three non-oauth means of "getting a token" that are common in this space. These are hinted at in the document, but to my understanding these practices are:

 - Setting environment variables
 - Mounting a file on a virtual filesystem (usually through some container overlay, etc)
 - Reading from a local socket through an agent

Each of these approaches has different security considerations and tradeoffs, and this document is the perfect place to address each of these practices with clear, sober advice for implementors on what to choose and when to choose it.


3) It should focus on the token from (2) in the cases where it’s a WIMSE token, as defined by other docs in this WG. Specifically it should point out that what you’re mounting/loading/etc is not an "access token" in the traditional sense, as it’s not intended to directly call another service after an act of delegation. Instead, it’s a means of identifying the workload instance and allowing it to perform core functions, which might include getting an access token through some means.


4) It should point to other work for trading the WIMSE token from (3) for an access token where needed, these won’t be in this document. The WG has identified token exchange/translation and as-of-yet-undefined "local token issuance" as means of going from the WIMSE space into OAuth space, and vice versa. This document shouldn’t specify how to do any of that, but should instead point forward to other work as out of scope. This work could also talk about getting transaction tokens or other artifacts.


5) In the case where the token from (2) is actually an access token or used as such, there should be security considerations and discussion around the tradeoff — because somebody’s going to do it that way anyway regardless of how much we warn them. This document is a good place to discuss such tradeoffs — for example, you save a round trip, but now you have a much more dangerous artifact immediately available.


6) It should address but not define proof of possession, to the extent that it talks about loading and managing associated secrets alongside the token. The means of token PoP should be covered by other documents, such as the proposed S2S document.


I think that if we address the six points here, this document could be an incredibly useful piece of work for the wider community. I also don’t think it’s a massive amount of work to get there — certainly much more than what the document currently addresses, but as it’s informational and largely documenting and commenting on existing practices instead of inventing protocols and formats, I believe a lot of the knowledge already exists out there in the community and it needs to be distilled and edited.


— Justin

https://datatracker.ietf.org/doc/html/rfc1818

On Jul 29, 2024, at 6:21 AM, Pieter Kasselman <pieter.kasselman@microsoft.com> wrote:

During the Working Group meeting in Vancouver there was discussion on the scope of the Working Group document titled Best Current Practice for OAuth 2.0 Client Authentication in Workload Environments [1], which was adopted in accordance with the following deliverable in the charter [2]:


  *   [I or BCP] Document and make recommendations based on operational experience to existing token distribution practices for workloads.


This is intended to respond to the following milestone [3]:


  *   Submit informational document describing considerations for filesystem-based JWT delivery in Kubernetes to the IESG


Please reply to the list to indicate which of the following options represent the appropriate scope for this document:


  1.  Document existing practices without specific recommendations on how to obtain, protect and use OAuth Access Tokens.
  2.  Document existing practices along with strong recommendations on how to obtain, protect and use OAuth Access Tokens.
  3.  Need more information (please state what more information you need).
  4.  No opinion (i.e., this isn’t a topic you care strongly about).

Please reply to the list by August 12th, 2024.

Thank you,

Pieter and Justin

[1] https://datatracker.ietf.org/doc/draft-ietf-wimse-workload-identity-bcp/
[2] https://datatracker.ietf.org/doc/charter-ietf-wimse/
[3] https://datatracker.ietf.org/wg/wimse/about/