Что возвращает провайдер openid во время обнаружения?

Я делаю 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 потребительский тестер не делает ничего плохого. пожалуйста, посоветуйте мне, что делать. благодарю вас.

1 ответ

Решение

Ваш Openid поддерживает расширения?

Вы должны поддерживать хотя бы расширение службы обмена Openid Simple Attributue для обмена идентификационной информацией между конечными точками. Таким образом, вы должны перечислить расширение как дополнительные дочерние элементы 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

Другие вопросы по тегам