OpenID Attribute Exchange Protocol questions

Dick Hardt dick at sxip.com
Tue Jul 10 15:29:12 UTC 2007


On 10-Jul-07, at 1:47 AM, James Henstridge wrote:

>
>>>> I don't think it's implied anywhere (or a good design) to keep  
>>>> state
>>>> between the original request and subsequent updates. So the RP  
>>>> cannot
>>>> infer the 'removed' statement just because an update did not  
>>>> contain
>>>> an attribute that was part of the original exchange.
>>>>
>>>> The update message is a fetch response, so I think it should be
>>>> interpreted as such by the RP: "the user has a new phone number".
>>>> Then the RP can decide what it wants to do with the new value,  
>>>> as if
>>>> it had requested the same attributes again.
>>>
>>> Thank you for the clarification.  It seems that an OP will get the
>>> most consistent results if it always sends all attributes in an  
>>> update
>>> then, so it doesn't need to track whether intermediate updates  
>>> failed
>>> (or track exactly which attributes were changed).
>>
>> Sending all of the originally requested attributes would also require
>> the OP to keep an "original request" data structure for each Fetch
>> Request with an update_url in it, with the possibility of
>> conflicting / overlapping requests.
>>
>> A cleaner way would be to attach a list of update URLs to each
>> attribute in the user's profile, and when that attribute's value
>> changes to post an update to the RP (after prompting the user etc.).
>
> The issue I was thinking of was how to handle a "lost update".  In
> cases where two attributes are related (like two components of a
> postal address), I'd want to make sure the RP has matching versions of
> those attributes.
>
> An update could be lost due to temporary network failures, or possibly
> if the RP could not verify the update (e.g. if an association handle
> is used that the RP does not have).

If the OP does not successfully send the update, I would hope that a  
*good* OP implmentation would try again until it was successful.
I imagined that an OP would retain the state of an original request  
and update URL.

Good point brought up about subsequent requests. A mechanism for  
indicating that request B replaces request A is needed so that the RP  
does not get an update for each request that has ever been made.

-- Dick



More information about the specs mailing list