On 15 April 2012 08:21, Eran Hammer <e...@hueniverse.com> wrote: > Tone aside, this is not the first time you distorted process and > technical facts to suit your goals. Just look up some of our exchanges from > a year ago and the transcript of the Prague meeting for highlights. >
As stephen suggests, could we possibly continue this fascinating discussion on apps discuss? I know people are passionate about this issue, and that's a positive thing. But I think it probably would be most productive, if we could all try to keep personal attacks to a minimum. > **** > > ** ** > > EH**** > > ** ** > > ** ** > > ** ** > > *From:* oauth-boun...@ietf.org [mailto:oauth-boun...@ietf.org] *On Behalf > Of *Mike Jones > *Sent:* Friday, April 13, 2012 9:18 AM > *To:* Blaine Cook > *Cc:* oauth@ietf.org WG > > *Subject:* Re: [OAUTH-WG] Web Finger vs. Simple Web Discovery (SWD)**** > > ** ** > > Hi Blaine. I must admit, I’m pretty surprised by the tone of your reply. > I’ll say up front that I have absolutely no problem with anyone disagreeing > with me on a technical or tactical basis. If you think I’m wrong, have at > it.**** > > ** ** > > But I am pretty shocked that you would decide to impugn my motives. We’ve > only met twice and both times I thought we had really useful and productive > discussions about how to move digital identity on the Web forward – > something I believe that we’re both passionate about. You don’t really > know me, though, which is apparent from your remarks below. I believe that > those who have worked with me for years would vouch that I am a forthright > and evenhanded standards participant who listens to all points of view, > tries to build a consensus that works, and produce quality results.**** > > ** ** > > I thought about your note overnight and whether I should reply at all. > I’m fine with give and take, but I believe that I need to say that if you > read what you wrote below, I think you’ll agree that the tone you used was > counter-productive and an apology is in order.**** > > ** ** > > -- Mike**** > > ** ** > > P.S. I’ll address your technical points below in a separate note at some > point – some I agree with and some I don’t. But I felt that I needed to > address my motives being questioned separately and first. I hope we can > both come out of this with a better understanding of one another and work > together towards the important goals that we both share.**** > > ** ** > > *From:* Blaine Cook [mailto:rom...@gmail.com] > *Sent:* Thursday, April 12, 2012 3:41 PM > *To:* Mike Jones > *Cc:* Hannes Tschofenig; oauth@ietf.org WG > *Subject:* Re: [OAUTH-WG] Web Finger vs. Simple Web Discovery (SWD)**** > > ** ** > > On 12 April 2012 17:51, Mike Jones <michael.jo...@microsoft.com> wrote:*** > * > > Thanks for asking these questions Hannes. I'll first provide a brief > feature comparison of Simple Web Discovery and WebFinger and then answer > your questions. > > FEATURE COMPARISON > > RESULT GRANULARITY AND PRIVACY CHARACTERISTICS: SWD returns the resource > location(s) for a specific resource for a specific principal. WebFinger > returns all resources for the principal. The example at > http://tools.ietf.org/html/draft-jones-appsawg-webfinger-03#section-3.2"Retrieving > a Person's Contact Information" is telling. The WebFinger > usage model seems to be "I'll get everything about you and then fish > through it to decide what to do with it." The protocol assumption that all > WebFinger information must be public is also built into the protocol where > the CORS response header "Access-Control-Allow-Origin: *" is mandated, per > http://tools.ietf.org/html/draft-jones-appsawg-webfinger-03#section-7. > The privacy characteristics of these approaches are very different. (It's > these very same privacy characteristics that led sysadmins to nearly > ubiquitously disabling the fingerd service!) Particularly for the OAuth > use cases, narrow, scoped, and potentially permissioned responses seem > preferable.**** > > ** ** > > This is absolutely false.**** > > ** ** > > SWD provides no privacy whatsoever. SWD makes it somewhat harder to crawl > large numbers of profiles, but it does not incorporate any real security, > and any attempt to suggest that it does is misleading and deceptive.**** > > ** ** > > Webfinger, like any good HTTP service, is designed to allow access control > using appropriate means. That access control should not be *bound* to the > protocol, in the same way that HTTP does not have any REQUIRED access > control mechanisms, since doing so would severely restrict future usage of > a core protocol.**** > > ** ** > > FUD has no place in a discussion of the technical and social merits of a > protocol.**** > > ** ** > > For what it's worth, my intent with webfinger *from day one, nearly four > years ago*, has been to provide permissioned profile data *using EXISTING* > (or new, where appropriate or necessary, based on *running code and > deployment EXPERIENCE*) access control mechanisms for profile data.**** > > ** ** > > The idea that there is ONE view of the data is patently false. For > example, depending on who is requesting my profile data, I might return > different contact telephone numbers, and this behaviour is completely > feasible using webfinger.**** > > **** > > DOCUMENT VERSUS API MODEL, DEPLOYABILITY, AND SECURITY: WebFinger is > built on a "document model", where a single document is returned that > contains multiple resources for a principal. SWD is built on an "API > model", where the location(s) of a particular resource for a principal are > returned. The problem with the document model is that different parties or > services may be authoritative for different resources for a given > principal, and yet all need the rights to edit the resulting document. > This hurts deployability, because document edits then need to be > coordinated among parties that may have different rights and > responsibilities, and may have negative security implications as well. > (Just because I can change your avatar doesn't mean that I should be able > to change your mail server.)**** > > ** ** > > WS-* was built on an API model, and that worked out very well.**** > > ** ** > > APIs and documents on the web are the same thing; how you represent them > behind the scenes is up to you, and that's been a core principle of the web > since shortly after its inception. Suggesting otherwise profoundly > misunderstands how implementation of web services happens.**** > > ** ** > > SWD says nothing of how to update profile data, so the security concerns > here are a total red herring.**** > > **** > > REDIRECT FUNCTIONALITY AND DEPLOYABILTY: SWD includes the ability to > redirect some or all SWD requests to another location (possibly depending > upon the specific resource and principal parameters). Deployers hosting > numerous sites for others told the SWD authors that this functionality is > critical for deployability, as it means that the SWD server for a domain > can live in a location outside the domain. WebFinger is lacking this > functionality. Given that OAuth is likely to be used in hosted > environments, this functionality seems pretty important.**** > > ** ** > > Umm, I'm not even sure what to say to this. host-meta is a static file > that points to a profile server (generally expected to be a dynamic "API" > server) that can be hosted on any domain.**** > > ** ** > > The fact that you're suggesting that this core piece of webfinger > functionality is *missing* seriously undermines my belief that you're > acting in good faith, Mike.**** > > **** > > NUMBER OF ROUND TRIPS: WebFinger discoveries for user information > normally require both a host-meta query to retrieve the template and then a > second query to retrieve the user's information. This functionality is > achieved in a single SWD query.**** > > ** ** > > ... at the cost of greater client complexity. A webfinger lookup may be > implemented with the following trivial shell script:**** > > ** ** > > curl -s http://example.com/.well-known/host-meta|awk"/lrdd/,/template/"|tr -d > '\n'|sed -e > "s/^.*template='\([^']*\)'.*$/\1/"|sed -e "s/{uri}/u...@example.com/"|xargs > curl -s**** > > **** > > so long as your HTTP client properly follows redirects, this approach will > always produce a valid webfinger profile, and if proper caching is > implemented, will only make requests to /.well-known/host-meta when the > document is expired.**** > > ** ** > > SWD, on the other hand, implements a non-HTTP redirect mechanism, meaning > that optimal caching rules can't be obeyed by standard HTTP clients. > Moreover, SWD *requires* conditionals by presenting one code path for the > non-redirect case and one code path for the immediate response case.**** > > ** ** > > The complexity for client implementations should be foremost in this work, > and the decisions made by SWD don't indicate to me that these factors have > been considered.**** > > ** ** > > Indeed, I wonder why is SWD designed to pre-optimize for presumed scaling > challenges that are faced by only the very largest providers (namely, the > fact that two lookups are required for webfinger instead of one in the > ideal case), when:**** > > ** ** > > 1. Those scaling challenges are simply not real threats. host-meta can be > cached using existing HTTP mechanisms**** > > 2. The fact that SWD only returns one service definition per request means > that more than one request will often be required to obtain the necessary > information about a user.**** > > 3. The chances that Google or Microsoft will host dynamic response SWD > services on the gmail.com or hotmail.com domains is next to nil, and will > therefore need to issue redirects anyways.**** > > ** ** > > For smaller providers (e.g., personal domains hosted in static or rigid > environments), hosting a SWD server at /.well-known/simple-web-discovery > may be challenging indeed. Thus, all clients will need to support the > redirect behaviour natively, and for those who write specs but not code, it > is *more* complex to have conditional behaviour like that than to have a > defined flow that is always followed.**** > > ** ** > > Further, it's more complex for small service providers to host static > content that is invariant and properly cached (e.g., by transparent proxy > caches like varnish and squid) when CGI parameters are appended, as with > SWD.**** > > ** ** > > XML AND JSON VERSUS JSON: WebFinger specifies both XML and JSON support, > whereas SWD specifies only JSON. The SWD position is that it's simpler to > specify only one way of doing the same thing, with JSON being chosen > because it's simpler for developers to use than XML - the same decision as > made for the OAuth specs.**** > > ** ** > > Webfinger only used XRD in the first place to satisfy the OpenID > community. This is infuriating format-fetishism, and misses the point > entirely. JSON is preferred, and I, for one, would happily modify host-meta > and webfinger to require JSON is people feel this strongly about it.**** > > **** > > DEFINING SPECIFIC RESOURCES: Besides specifying a discovery protocol, > WebFinger also defines specific resources and kinds of resources to be used > with that protocol: the "acct" URI scheme, the "acct" Link Relation. > These should be considered on their own merits, but logically should be > decoupled from the discovery protocol into a different document or > documents. It's not clear these features would be needed in OAuth contexts. > **** > > ** ** > > I have long argued against the acct URI, but the consensus-based approach > of the IETF has over-ridden me on that one. If you feel similarly, you are > free to voice that opinion.**** > > ** ** > > It shocks me that you're saying that the OAuth WG shouldn't consider > host-meta/webfinger because it defines something that isn't of interest to > the OAuth WG. The whole point of my argument at the WG meeting in Paris was > that Webfinger and SWD-like protocols are of such consequence to the web at > large that the interests of the OAuth WG should not be used to define the > parameters for their behaviour.**** > > ** ** > > I'm more convinced that you're using your power within this WG to have SWD > rubber-stamped so that you can ship OpenID Connect as you've defined it.** > ** > > **** > > QUESTIONS**** > > > 1) Aren't these two mechanisms solving pretty much the same problem?**** > > They are solving an overlapping set of problems, but with > very different privacy characteristics, different deployability > characteristics, different security characteristics, and somewhat different > mechanisms.**** > > ** ** > > Again, I totally disagree with your assessment here, Mike.**** > > **** > > 2) Do we need to have two standards for the same functionality?**** > > No - Simple Web Discovery is sufficient for the OAuth use > cases (and likely for others as well).**** > > ** ** > > I agree with this – since SWD is an explicit (though unstated) fork of > Webfinger, there is no need to have two standards.**** > > **** > > 3) Do you guys have a position or comments regarding either one of them?* > *** > > The functionality in Simple Web Discovery is minimal and > sufficient for the OAuth use cases, whereas some of the functionality and > assumptions made in WebFinger are harmful, both from a privacy and from a > deployability perspective. SWD should proceed to standardization; > WebFinger should not.**** > > ** ** > > I believe Mike has made misleading statements regarding the privacy and > deployability perspective, either intentionally, or because he > fundamentally does not understand the security or deployment scenarios that > motivate the decisions.**** > > ** ** > > In summary:**** > > ** ** > > 1. I believe that SWD and Webfinger are essentially the same protocol, > with different authors names at the top.**** > > 2. I don't care which one "wins", though I think that SWD's use of HTTP is > questionable, and that the claims of privacy and deployability advantages > offered by SWD are overblown and potentially misleading.**** > > 3. My concerns about SWD apply equally to any concerns anyone would > leverage against Webfinger.**** > > 4. Which is to say, I think we should have one protocol that is defined by > an open discussion.**** > > 5. We've had an open discussion on the webfinger list and apps-discuss and > in the context of host-meta that the SWD folks have chosen not to engage > with for the past three years.**** > > 6. The OAuth list is *not* the place for this discussion to happen, just > so that Mike Jones can quickly push a spec through the formal process using > a list that has well-known problems of too-high mail volume and whose topic > is unrelated to the goals of Webfinger/SWD.**** > > ** ** > > This is important enough to get right, and getting it wrong will almost > certainly lead to years of incompatibility and frustration, as Stephen > mentioned. I encourage everyone involved to take this seriously, let go of > personal attachment and presumptions of dependencies, and consider this > work in an appropriate context (with an inclusive, not exclusive community). > **** > > ** ** > > b.**** > > _______________________________________________ > OAuth mailing list > OAuth@ietf.org > https://www.ietf.org/mailman/listinfo/oauth > >
_______________________________________________ OAuth mailing list OAuth@ietf.org https://www.ietf.org/mailman/listinfo/oauth