Interested Article - Yadis

Yadis сетевой протокол для обнаружения сервисов OpenID , OAuth и с использованием Yadis ID. Изначально предназначенный для обнаружения сервисов цифровой идентификации, Yadis легко может быть использован и для других сервисов.

Yadis ID может быть обычным URL или более новым XRI , где i-name должен разрешаться в URL. Так называемый Yadis URL либо равен Yadis ID (если это URL) либо разрешенному URL из i-name.

Кроме того, Yadis специфицирует, как использовать Yadis URL, чтобы получить дескриптор сервиса, называемый Дескриптор сервиса Yadis . Этот дескриптор следует формату и объединяет несколько сервисов авторизации и аутентификации в Yadis URL. Дескрипторы сервисов могут иметь параметры.

Модульная архитектура

Yadis следует парадигме REST , которая хорошо себя зарекомендовала в web-разработке. Основываясь на предположении, что идентификаторы могут быть адресованы через URL или другие идентификаторы (такие, как i-names XRI ), которые могут быть разрешены в URL, Yadis ассоциирует XRDS-документ (формат XML , описывающий возможности) с каждым URL, который выражает ассоциированные возможности или сервисы. Владелец идентификатора Yadis может выбрать, какие сервисы он хочет использовать в своем документе XRDS. После получения документа, зависимая сторона (например, веб-сайт, принимающий идентификатор Yadis), может выбрать подходящий сервис, например протокол для аутентификации. Это позволяет существующим сайтам, таким как блоги, легко реализовать базовую функциональность Yadis — например, перенаправлять приходящих на блог пользователей к релевантной информации о владельце блога, в то же время позволяя построить более сложные приложения (например, отправлять сложные запросы о владельце сайта прямо на Yadis-сайт)

Обнаружение дескриптора сервиса Yadis

Документ о возможностях, ассоциированных с URL находится:

  1. В нестандартном HTTP-заголовке X-XRDS-Location ,
  2. В эквивалентном meta-теге в секции HEAD HTML-документа <meta http-equiv="X-XRDS-Location" content="http://example.com/yadis.xml"> ,
  3. или отдается при запросе специального MIME -типа application/xrds+xml по GET-запросу к URL идентификатора.

Разработчики могут выбирать, что именно реализовывать, основываясь на разных факторах, например, есть ли доступ к серверной стороне идентификатора.

Документы XRDS

Здесь приведен образец -документа возможностей:

<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)"
xmlns:openid="http://openid.net/xmlns/1.0">
  <XRD>
    <Service priority="50">
      <Type>http://openid.net/signon/1.0</Type>
      <URI>http://www.myopenid.com/server</URI>
      <openid:Delegate>http://smoker.myopenid.com/</openid:Delegate>
    </Service>
    <Service priority="10">
      <Type>http://openid.net/signon/1.0</Type>
      <URI>http://www.livejournal.com/openid/server.bml</URI>
      <openid:Delegate>http://www.livejournal.com/users/frank/</openid:Delegate>
    </Service>
    <Service priority="20">
      <Type>http://lid.netmesh.org/sso/2.0</Type>
      <URI>http://mylid.net/liddemouser</URI>
    </Service>
    <Service>
      <Type>http://lid.netmesh.org/sso/1.0</Type>
    </Service>
  </XRD>
</xrds:XRDS>

Такой -документ, полученный для данного URL с использованием любого из перечисленных механизмов, выражает следующую информацию:

  • Этот URL является URL идентификатора Yadis.
  • Этот URL поддерживает протокол OpenID , через два сервера и два делегата.
  • Этот URL поддерживает версию 1.0 и версию 2.0 протокола , с помощью делегата.
  • Для входа пользователей, владелец URL предпочитает использование учетных записей их LiveJournal и протокол OpenID (приоритет 10). Если это невозможно, (например, зависимая сторона не поддерживает OpenID, или сервер LiveJournal недоступен), владелец хотел бы использовать URL http://mylid.net/liddemouser (приоритет 20), или сервис MyOpenID (приоритет 50).

LID, OpenID и сообщество разработчиков

Yadis был предложен разработчиками протоколов и OpenID . К этому сотрудничеству присоединились члены OASIS , Технический Комитет XRI .

Yadis является открытой инициативой, так что другие разработчики начинают использовать описания , пользуясь возможностью выбирать баланс между легкостью реализации, с одной стороны, и количеством реализованного функционала.

См. также

Ссылки

  • (англ.)
  • (англ.)
  • (англ.)
Источник —

Same as Yadis