> While we're talking about prior art, I should also mention that the IndieAuth > extension of OAuth 2 has been using URLs as client IDs since about 2012. > (Disclosure: I am the editor of the spec)
> Since 2012, the spec has matured and was published as a W3C Note in 2018 > while the W3C Social Web Working Group was active. > (https://www.w3.org/TR/indieauth/) Currently, the spec is maintained in the > IndieWeb community, the latest update was in February 2022: > https://indieauth.spec.indieweb.org/20220212/ Is there an accepted way to reference prior art in an I-D I'd like to be able to highlight IndieAuth, Solid and OpenID Federation all as examples of slightly different ways this problem is being solved in the wild today. > For this reason, the IndieAuth spec has put far less emphasis on client > metadata discovery vs making the rest of the OAuth flow work by having the > client_id be a URL. There is a method of client metadata discovery defined, > but it's always secondary to making sure the user can see the redirect URL > (or the client identifier if it has the same hostname as the redirect URL), > since ultimately that is where the authorization code will be sent. In general I agree, one thing I would note is does the user need to see the redirect URL? In the client discovery model I would assume the identifier surfaced by the AS to the user, to establish trust in the client, is the client_id (which is taking the form of a URL). Because if you are resolving the clients metadata using this + a well-known path, and you receive a list of permitted redirect_uri's for that client that you can validate the authorization request against? Take the example client_id => https://client.example.com metadata resolved from => https://client.example.com/.well-known/oauth-client supported redirect uri listed in client metadata => https://another-domain.com I would assume the only identifier that is important to surface to the user about the client is https://client.example.com, the redirect uri the client is less of a concern, provided it is validated against the redirect uri's permitted by the client which is listed in its metadata. Thanks, [Mattr website]<https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fscanmail.trustwave.com%2F%3Fc%3D15517%26d%3Dw46s4eMXULV_ns1ZfAKYLbVKcqey_PHiW1WeN4boYw%26u%3Dhttps%253a%252f%252fmattr.global%252f&data=04%7C01%7CSteve.Lowes%40mbie.govt.nz%7C5a65fe33c70b41fd8ba908d976f3a2f1%7C78b2bd11e42b47eab0112e04c3af5ec1%7C0%7C0%7C637671611076709977%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=tKqCMzLUQNCeORd908YqfqZoT7tCy%2FMVwXdjpch1sDY%3D&reserved=0> Tobias Looker MATTR CTO +64 (0) 27 378 0461 tobias.looker@mattr.global<mailto:tobias.looker@mattr.global> [Mattr website]<https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fscanmail.trustwave.com%2F%3Fc%3D15517%26d%3Dw46s4eMXULV_ns1ZfAKYLbVKcqey_PHiW1WeN4boYw%26u%3Dhttps%253a%252f%252fmattr.global%252f&data=04%7C01%7CSteve.Lowes%40mbie.govt.nz%7C5a65fe33c70b41fd8ba908d976f3a2f1%7C78b2bd11e42b47eab0112e04c3af5ec1%7C0%7C0%7C637671611076709977%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=tKqCMzLUQNCeORd908YqfqZoT7tCy%2FMVwXdjpch1sDY%3D&reserved=0> [Mattr on LinkedIn]<https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fscanmail.trustwave.com%2F%3Fc%3D15517%26d%3Dw46s4eMXULV_ns1ZfAKYLbVKcqey_PHiW1SbN9fvNg%26u%3Dhttps%253a%252f%252fwww.linkedin.com%252fcompany%252fmattrglobal&data=04%7C01%7CSteve.Lowes%40mbie.govt.nz%7C5a65fe33c70b41fd8ba908d976f3a2f1%7C78b2bd11e42b47eab0112e04c3af5ec1%7C0%7C0%7C637671611076719975%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=t%2BidOI32oaKuTJf1AkcG%2B%2FirIJwbrgzXVZnjOAC52Hs%3D&reserved=0> [Mattr on Twitter]<https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fscanmail.trustwave.com%2F%3Fc%3D15517%26d%3Dw46s4eMXULV_ns1ZfAKYLbVKcqey_PHiW1WdMte6ZA%26u%3Dhttps%253a%252f%252ftwitter.com%252fmattrglobal&data=04%7C01%7CSteve.Lowes%40mbie.govt.nz%7C5a65fe33c70b41fd8ba908d976f3a2f1%7C78b2bd11e42b47eab0112e04c3af5ec1%7C0%7C0%7C637671611076729970%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=BD9WWyXEjVGlbpbCja93yW%2FzLJZpe%2Ff8lGooe8V6i7w%3D&reserved=0> [Mattr on Github]<https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fscanmail.trustwave.com%2F%3Fc%3D15517%26d%3Dw46s4eMXULV_ns1ZfAKYLbVKcqey_PHiWwGdMoDtMw%26u%3Dhttps%253a%252f%252fgithub.com%252fmattrglobal&data=04%7C01%7CSteve.Lowes%40mbie.govt.nz%7C5a65fe33c70b41fd8ba908d976f3a2f1%7C78b2bd11e42b47eab0112e04c3af5ec1%7C0%7C0%7C637671611076729970%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=4AhRuXZCnU5i3hcngo4H3UiNayYUtXpRcImV4slS1mw%3D&reserved=0> This communication, including any attachments, is confidential. If you are not the intended recipient, you should not read it - please contact me immediately, destroy it, and do not copy or use any part of this communication or disclose anything about it. Thank you. Please note that this communication does not designate an information system for the purposes of the Electronic Transactions Act 2002. ________________________________ From: Aaron Parecki <aaron=40parecki....@dmarc.ietf.org> Sent: 14 December 2022 16:07 To: oauth@ietf.org <oauth@ietf.org> Cc: Tobias Looker <tobias.looker@mattr.global>; Ben Schwartz <bem...@google.com>; Dmitry Telegin <dmit...@backbase.com> Subject: Re: [OAUTH-WG] OAuth2 Client Discovery EXTERNAL EMAIL: This email originated outside of our organisation. Do not click links or open attachments unless you recognise the sender and know the content is safe. While we're talking about prior art, I should also mention that the IndieAuth extension of OAuth 2 has been using URLs as client IDs since about 2012. (Disclosure: I am the editor of the spec) Since 2012, the spec has matured and was published as a W3C Note in 2018 while the W3C Social Web Working Group was active. (https://www.w3.org/TR/indieauth/) Currently, the spec is maintained in the IndieWeb community, the latest update was in February 2022: https://indieauth.spec.indieweb.org/20220212/ Because the premise of this scenario is that the user may have no prior relationship with an application they are authorizing via an OAuth flow, and the applications have no prior relationship with the authorization server, naturally we want to provide as much context to the user about the application as possible. If there is no prior relationship between either the user and client or the client and authorization server, it's an inherently risky situation. Should the user believe any self-asserted information by the client? Probably not. In fact, the only information that the user can truly "verify" is the redirect URL. Any information (name, logo, etc) provided by the client at its client_id URL (regardless of whether that is a .well_known URL or the client_id URL itself as JSON or HTML) ultimately can't be trusted. If the redirect_uri shares the same hostname of the client_id then that's a good sign that nothing phishy is happening. For this reason, the IndieAuth spec has put far less emphasis on client metadata discovery vs making the rest of the OAuth flow work by having the client_id be a URL. There is a method of client metadata discovery defined, but it's always secondary to making sure the user can see the redirect URL (or the client identifier if it has the same hostname as the redirect URL), since ultimately that is where the authorization code will be sent. This is why using a client_id that contains human-readable information is so critical to the security of the flow. When the client_id is something that the user can click on and visit, they can then see more information about which application they are granting access to. It's very common that applications in this space will have a web page about them, at the very least a landing page with links out to app stores, so it's not a huge stretch of the imagination. It's worth thinking about these types of privacy and security considerations of any form of this type of unregistered OAuth client. Aaron Parecki On Tue, Dec 13, 2022 at 9:30 AM Dmitry Telegin <dmitryt=40backbase....@dmarc.ietf.org<mailto:40backbase....@dmarc.ietf.org>> wrote: Hello Tobias, thanks for the draft! In regards to prior art, I'd like to mention Solid Project and their OIDC flavor, Solid-OIDC: https://solid.github.io/solid-oidc/#clientids-document They're using a similar approach (and have been for years), though with some differences: - client_id points to a URL that must resolve to the client metadata document directly (no .well-known/* used); - the document's format is JSON-LD, a superset of JSON. In order to maintain compatibility with Solid and similar existing technologies, would it make sense to mention that: - while retrieving client metadata, AS should recognize not only application/json, but application/ld+json (or maybe even application/*+json, as per https://datatracker.ietf.org/doc/html/rfc6839#section-3-1)? - any unknown fields (like JSON-LD "@context") must be ignored? On an unrelated note, it would be nice to cover the issue of caching the client metadata on the AS side. Obviously, we wouldn't want to re-request the metadata upon every request to the authorization endpoint. Would RFC 9111 suffice here? If so, which subset should be guaranteed to be supported by the AS? Thanks, Dmitry On Wed, Nov 9, 2022 at 8:36 PM Tobias Looker <tobias.looker=40mattr.glo...@dmarc.ietf.org<mailto:40mattr.glo...@dmarc.ietf.org>> wrote: Hi Ben, See below for some thoughts. > I'm having trouble understanding the precise URL structures that are used > here. Can client_uri include a nontrivial path? Why is it necessary to > repeat client_uri in the response JSON? The intent here is to follow how "OAuth 2.0 authorization metadata" works (RFC 8414) which requires the client resolving the authorization server metadata to check that the issuer in the resolved document matches the issuer URL they started the resolution with, see below for the relevant extract from RFC 8414. " The "issuer" value returned MUST be identical to the authorization server's issuer identifier value into which the well-known URI string was inserted to create the URL used to retrieve the metadata. If these values are not identical, the data contained in the response MUST NOT be used. " So the equivalent with our draft is to require the authorization server to validate that the client_uri returned in the clients metadata response matches the URL that was used to retrieve the metadata. > The use of .well-known is a bit unusual. Why not just host the JSON at the > client_uri? Just to clarify it is, just under a well-known path? e.g if the client uri is https://client.example.com then the metadata would be published at https://client.example.com/.well-known/oauth-client > Finally, I note that the section on Impersonation Attacks doesn't mention the > client_name or logo_uri. If these are to be shown to the user, they present > a very serious impersonation risk that ought to be discussed. (The > client_name also might need to be localized, which could be done by fetching > the JSON document with an appropriate Accept-Language request header.) Yes absolutely agree this is an important security consideration to highlight, I will capture an issue. Thanks, [Mattr website]<https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fscanmail.trustwave.com%2F%3Fc%3D15517%26d%3Dw46s4eMXULV_ns1ZfAKYLbVKcqey_PHiW1WeN4boYw%26u%3Dhttps%253a%252f%252fmattr.global%252f&data=04%7C01%7CSteve.Lowes%40mbie.govt.nz%7C5a65fe33c70b41fd8ba908d976f3a2f1%7C78b2bd11e42b47eab0112e04c3af5ec1%7C0%7C0%7C637671611076709977%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=tKqCMzLUQNCeORd908YqfqZoT7tCy%2FMVwXdjpch1sDY%3D&reserved=0> Tobias Looker MATTR CTO +64 (0) 27 378 0461 tobias.looker@mattr.global<mailto:tobias.looker@mattr.global> [Mattr website]<https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fscanmail.trustwave.com%2F%3Fc%3D15517%26d%3Dw46s4eMXULV_ns1ZfAKYLbVKcqey_PHiW1WeN4boYw%26u%3Dhttps%253a%252f%252fmattr.global%252f&data=04%7C01%7CSteve.Lowes%40mbie.govt.nz%7C5a65fe33c70b41fd8ba908d976f3a2f1%7C78b2bd11e42b47eab0112e04c3af5ec1%7C0%7C0%7C637671611076709977%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=tKqCMzLUQNCeORd908YqfqZoT7tCy%2FMVwXdjpch1sDY%3D&reserved=0> [Mattr on LinkedIn]<https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fscanmail.trustwave.com%2F%3Fc%3D15517%26d%3Dw46s4eMXULV_ns1ZfAKYLbVKcqey_PHiW1SbN9fvNg%26u%3Dhttps%253a%252f%252fwww.linkedin.com%252fcompany%252fmattrglobal&data=04%7C01%7CSteve.Lowes%40mbie.govt.nz%7C5a65fe33c70b41fd8ba908d976f3a2f1%7C78b2bd11e42b47eab0112e04c3af5ec1%7C0%7C0%7C637671611076719975%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=t%2BidOI32oaKuTJf1AkcG%2B%2FirIJwbrgzXVZnjOAC52Hs%3D&reserved=0> [Mattr on Twitter]<https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fscanmail.trustwave.com%2F%3Fc%3D15517%26d%3Dw46s4eMXULV_ns1ZfAKYLbVKcqey_PHiW1WdMte6ZA%26u%3Dhttps%253a%252f%252ftwitter.com%252fmattrglobal&data=04%7C01%7CSteve.Lowes%40mbie.govt.nz%7C5a65fe33c70b41fd8ba908d976f3a2f1%7C78b2bd11e42b47eab0112e04c3af5ec1%7C0%7C0%7C637671611076729970%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=BD9WWyXEjVGlbpbCja93yW%2FzLJZpe%2Ff8lGooe8V6i7w%3D&reserved=0> [Mattr on Github]<https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fscanmail.trustwave.com%2F%3Fc%3D15517%26d%3Dw46s4eMXULV_ns1ZfAKYLbVKcqey_PHiWwGdMoDtMw%26u%3Dhttps%253a%252f%252fgithub.com%252fmattrglobal&data=04%7C01%7CSteve.Lowes%40mbie.govt.nz%7C5a65fe33c70b41fd8ba908d976f3a2f1%7C78b2bd11e42b47eab0112e04c3af5ec1%7C0%7C0%7C637671611076729970%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=4AhRuXZCnU5i3hcngo4H3UiNayYUtXpRcImV4slS1mw%3D&reserved=0> This communication, including any attachments, is confidential. If you are not the intended recipient, you should not read it - please contact me immediately, destroy it, and do not copy or use any part of this communication or disclose anything about it. Thank you. Please note that this communication does not designate an information system for the purposes of the Electronic Transactions Act 2002. ________________________________ From: Ben Schwartz <bemasc=40google....@dmarc.ietf.org<mailto:40google....@dmarc.ietf.org>> Sent: 10 November 2022 07:04 To: Tobias Looker <tobias.looker@mattr.global> Cc: oauth@ietf.org<mailto:oauth@ietf.org> <oauth@ietf.org<mailto:oauth@ietf.org>> Subject: Re: [OAUTH-WG] OAuth2 Client Discovery EXTERNAL EMAIL: This email originated outside of our organisation. Do not click links or open attachments unless you recognise the sender and know the content is safe. _______________________________________________ OAuth mailing list OAuth@ietf.org<mailto:OAuth@ietf.org> https://www.ietf.org/mailman/listinfo/oauth _______________________________________________ OAuth mailing list OAuth@ietf.org<mailto:OAuth@ietf.org> https://www.ietf.org/mailman/listinfo/oauth
_______________________________________________ OAuth mailing list OAuth@ietf.org https://www.ietf.org/mailman/listinfo/oauth