[OpenID] Backwards Compatibility

SitG Admin sysadmin at shadowsinthegarden.com
Thu Mar 19 02:13:51 UTC 2009


>I would like to see us come together to create a unit test API so 
>that tests can be more automated.

You take that end, I'll take this end? API's are nice as a layer of 
abstraction covering up the messy internals (of an object), how to do 
them as a layer of transparency to make what's going on inside *more* 
apparent to learning developers?

>However tests like checking that the OP is prompting you with 
>a reasonable dialog in response to a AX attribute request can never 
>be entirely automated.

I was thinking of presenting dialog boxes from the OP for 'auditing' 
mode, where, instead of asking the user to authenticate, the user 
would be shown a page describing, step by step, how the URL was 
separated out into component values, and what would then be *done* 
with those values - but the values to be encoded for return would be 
placed in *input* (text) fields before the user, fully editable (also 
allowing developers to test for suspected vulnerabilities). Scripting 
on the page could enable the user to perform functions right there in 
their browser, such as calculating the hash for a string.

All those values would then be sent to the OP when the user was done 
looking through them, and the OP would print out a string (and link) 
of all those values for the user to inspect and copy into their 
address bar. (Involving a second page is important not just because 
the user might have scripting (which could probably make it happen) 
enabled, but because the user might not *trust* those scripts - so, 
of course, the hash calculations should *not* be automatic, there 
would be a button to do so and the relevant formulae would be printed 
out right beside it, so users could employ their own calculating 
methods if desired.) The signature would be done OP-side, 
appropriately keeping that private key out of the hands of the user, 
who could verify that it decoded to the expected value with the 
public key using another button on the second page. Of course, if the 
user changed any of the values from their default (expected) state, 
the OP might refuse to sign, and the *user* would have to supply a 
private key on their end to determine what value they would send in 
the "signature" field (or just send the hash itself, or an empty 
string) before seeing how the RP responded to this.

-Shade



More information about the general mailing list