- From: Evan Prodromou <evan@status.net>
- Date: Fri, 22 Jun 2012 15:42:11 -0400
- To: public-pubsub@w3.org
- Message-ID: <4FE4CA93.6080006@status.net>
Folks,
One of the things we've talked about as being a weakness in the 0.3
standard is the lack of limited distribution -- delivering certain
updates to certain people.
One possible solution to this problem is dialback verification at
subscription time. As far as I know, Blaine Cook is the originator of
this method, but I'm not sure it's been implemented or described in detail.
I've written up the idea here:
http://www.w3.org/community/pubsub/wiki/Dialback
Here's the basic idea:
1. When making a subscription request, the subscriber passes an
additional parameter, "hub.from". This is either a Webfinger
<http://en.wikipedia.org/wiki/Webfinger> address or an HTTP URI
supporting LRDD <http://tools.ietf.org/html/rfc6415>.
2. If the "hub.from" parameter is present, before verifying the intent
of the subscriber, the hub should discover the
"pubsubhubbub-callback" links for the hub.from account using
Webfinger or LRDD.
3. If the hub.callback value is not one of the links that match the
response, the hub should halt and return an error.
4. If the hub.callback value is one of the links, the hub should verify
the subscriber's intent. It should include the hub.from value in the
parameters.
5. At content distribution time, the hub should deliver content to the
endpoints that the publisher has authorized.
Some notes:
* This method presupposes that there is one user per callback URL.
There is no information in the content distribution payload that
describes the intended recipient.
* Although it's possible to define a different callback per
subscription, it would probably make the Webfinger document or LRDD
document prohibitively large. A user with tens of thousands of
subscriptions, each with its own callback URL, would be too large.
* Communicating authorization info between publisher and hub is left
undefined.
* With this mechanism, there will be exactly one HTTP call per
subscriber. There is no bundling of multiple subscribers in one
payload.
* Blaine suggests using the "From:" HTTP header. A parameter is used
instead.
I think this mechanism is simple enough to be included in the 0.4 spec
as-is.
-Evan
--
Evan Prodromou, CEO and Founder, StatusNet Inc.
1124 rue Marie-Anne Est #32, Montreal, Quebec, Canada H2J 2B7
E: evan@status.net P: +1-514-554-3826
Received on Friday, 22 June 2012 19:42:37 UTC