Server-to-server channel
Martin Atkins
mart at degeneration.co.uk
Thu Apr 5 07:22:52 UTC 2007
[I initially sent this to Chris directly, because he sent his message to
me directly. Then I noticed he'd also replied on the list. Hopefully
he'll see this before my private reply and we can avoid another
go-around of duplicate messages!]
Chris Drake wrote:
>
> MA> For some things it's legitimate: they need to store your name because
> MA> otherwise they'd need to talk to your OP (via you!) every time they
> MA> render a page containing something attributed to you.
>
> OK - yes - I concede that some "data age" complexity does probably
> creep back in if RPs choose to deny users the opportunity to audit the
> use of user information. (If I've got a choice between 2 RPs, and RP1
> renders pages with my name in it, without giving me control over that,
> while RP2 makes repeated calls to my OP every time it occurs: I'll
> always choose to use RP2 - because it's the only one of the 2 options
> that's "user centric", and gives me the ability to control the use of
> my information.
>
> Yes - this could be a tough drain on RP and OP resources. Tough.
>
You can't just wash your hands of this problem because it doesn't suit
your rather bizarre idea about how the world should be. Sites need to be
able to attribute contributions to users, and in order to do that they
need the user's name. A forum site cannot retrieve the name of every
user that took part in a topic from their respective OPs while rendering
the topic page. "Tough" is not an acceptable answer: rendering a topic
page is a legitimate function of a forum site and attributing each
message is necessary.
> MA> they need to store your name because
> MA> otherwise they'd need to talk to your OP (via you!)
> "via you!" is not a correct statement. This is a "server-to-server"
> topic: we're discussing a data flow that is "by your explicit prior
> permission", but that takes place when you are not necessarily
> present.
Right. Some people had been talking about not allowing this out-of-band
information fetching. Even without the need for the user to be present,
it's still prohibitively expensive.
> MA> For other things it's more dubious than that, but the fact that it
> MA> is technically possible means that at least some RP's will do it.
> MA> I think it'd be a mistake to write the spec under the assumption
> MA> that they won't unless we're going to include something that
> MA> prevents it.
> I do not follow your logic. It looks like you're saying "there is an
> opportunity for some RP's to act badly, therefore we should not even
> try to code user-protection into the protocol"
On the contrary, I'm saying that if you don't want RPs to retain user
information then you should include some TECHNICAL MEASURE that prevents
them from doing so.
I think an acceptable compromise is to instead give users a way to
express their wishes about how the data can be retained in the form of a
"update this every n months/weeks/years/whatever" or a hard "expires on
this date"-type rule. This way you acknowledge that there are indeed
applications that need to retain user information for certain purposes
and allow the user to have some control over this process. You could
also put in a "don't retain this at all" flag, which in my forum case
would probably cause the forum to just identify you by your raw OpenID
identifier and have done with it.
> By all means - include preventative code (and for some kinds of
> attributes, digital time-stamped and signed assersions about the
> attributes solve these problems). But I think it's a far bigger
> mistake to completely leave out a server-to-server channel altogether.
I have nothing against the server-to-server channel. In fact, the
server-to-server channel is a prerequisite for the "update this every n
months" thing because otherwise the RP would have no way to do that update.
> When a rogue RP violates your trust and caches data without your
> permission, that's bad.
So a way is is needed for:
* A trustworthy RP to indicate how long it would like to retain
certain items of data
* A user to indicate how long he would like certain items of data
retained for, or how often the RP should try to refresh that data.
* A way for the user to prevent further updates of a particular
attribute by a particular RP after a certain date.
The first and second points above would, I think, be helped by defining
some reasonable defaults for each attribute type, just so that the
average user doesn't necessarily have to spend ages entering update
frequencies and expiry dates every time some attributes are requested
for the first time.
More information about the specs
mailing list