0

我正在做一个 openid 提供者。但我被困在发现步骤。我所做的如下:

  1. 依赖方转到我的发现 url
  2. 我的服务器(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、verisign,并将我带到登录屏幕。所以据说我的openid消费者测试仪没有做错任何事。请告诉我该怎么做。谢谢你。

4

1 回答 1

1

你的 Openid 支持扩展吗?

您必须支持至少 Openid 简单属性交换服务扩展,以便在端点之间交换身份信息。因此,您必须将扩展列为 xrd:Service 元素的附加 xrd:Type 子元素。

像这样的东西;

<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

于 2012-08-17T05:47:00.380 回答