我正在做一个openid提供者。但我被困在发现的那一步。我所做的工作如下:
application/xrds+xml)
<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">
<XRD>
<Service priority="0">
<Type>http://specs.openid.net/auth/2.0/server</Type>
<URI>my_endpoint_url (an https address, with self signed certificate)</URI>
</Service>
</XRD>
</xrds:XRDS>
但是,我的openid使用者测试人员不知何故无法发现我的openid提供者。我不知道我的xrds文档有什么问题,但是我的openid消费者测试器可以用来发现google、yahoo、VeriS传,并将我带到登录屏幕上。因此,据推测,我的openid消费者测试人员没有做错什么。请告诉我该怎么做。谢谢。
发布于 2012-08-17 05:47:00
您的Openid支持扩展吗?
您必须支持至少Openid简单属性交换服务扩展,以便在端点之间交换身份信息。因此,您必须将扩展列出为附加的xrd:Type的xrd:Service元素的子元素。
像这样的东西;
<Service priority="0">
<Type>http://specs.openid.net/auth/2.0/server</Type>
<Type>http://openid.net/srv/ax/1.0</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/mode/popup</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/icon</Type>
<Type>http://specs.openid.net/extensions/pape/1.0</Type>
<URI>endpoint_url</URI>
</Service>
有关这方面的更多信息,请查看折页链接。http://openid.net/specs/openid-authentication-2_0.html#discovery
https://stackoverflow.com/questions/11073129
复制相似问题