What is the relationship between the OpenID sreg and ax extensions? How does a relying party know which one to request, or both?
相关问题
- Use login_hint with OpenID
- Spring Security OpenID - UserDetailsService, Authe
- Additional alert shows up using AppAuth to authent
- Fake Open ID provider for testing purposes
- How safe is openID?
相关文章
- How to implement custom OpenID Relying Party in MV
- How to do login to my asp.net app using Facebook (
- Should I distinguish OpenIDs based on protocol pre
- Is all I need the “identity url”? - OpenID
- Identity server is keep showing “Showing login: Us
- Single Sign-On with Google Apps + App Engine
- OpenID for rails app behind Apache
- How do I enable ssl for all controllers in mvc app
sreg was written as the Simplest Thing that could Possibly Work, and has a very limited set of fields available. But since that includes
nickname
,email
, andfullname
, that's often all you need.Attribute Exchange is much more extensible and featureful, although I suspect in practice features like the
update_url
and store request have not been widely implemented.As for knowing which to request: In theory, which extensions a provider supports is documented in the XRDS document available during the discovery phase, as noted in the Extensions section of the spec. If you're using python-openid (or perhaps one of the other libraries at OpenID Enabled), you could query for that via something like
Unfortunately, OpenID identifier delegation makes that pretty unreliable. The user may be using the HTML-based discovery method, which doesn't advertise extensions at all, may have an XRDS that doesn't include the same extension information as the provider does, or an XRDS that was once accurate but is now out of date.
In addition, even if you do get an XRDS that advertises the AX extension, as far as I know it doesn't tell you which attributes the provider supports (i.e. which AX schema).
The most practical approach is probably to request lots of stuff, and if you get some stuff back, you can use it.