Yadis

Поделись знанием:
Перейти к: навигация, поиск

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

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

Кроме того, Yadis специфицирует, как использовать Yadis URL, чтобы получить дескриптор сервиса, называемый Дескриптор сервиса Yadis. Этот дескриптор следует формату XRDS и объединяет несколько сервисов авторизации и аутентификации в 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="example.com/yadis.xml">,
  3. или отдается при запросе специального MIME-типа application/xrds+xml по GET-запросу к URL идентификатора.

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

Документы XRDS

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

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

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

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

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

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

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

См. также

Напишите отзыв о статье "Yadis"

Ссылки

  • [yadis.org/wiki/Main_Page Проект Yadis] (англ.)
  • [yadis.org/wiki/Yadis_Implementations Реализации Yadis] (англ.)
  • [www.openidenabled.com/yadis/creating-a-yadis-services-document Раздел о Yadis на OpenIDEnabled.com] (англ.)


Отрывок, характеризующий Yadis

Он поравнялся с коляской и бежал с ней рядом.
– Трижды убили меня, трижды воскресал из мертвых. Они побили каменьями, распяли меня… Я воскресну… воскресну… воскресну. Растерзали мое тело. Царствие божие разрушится… Трижды разрушу и трижды воздвигну его, – кричал он, все возвышая и возвышая голос. Граф Растопчин вдруг побледнел так, как он побледнел тогда, когда толпа бросилась на Верещагина. Он отвернулся.
– Пош… пошел скорее! – крикнул он на кучера дрожащим голосом.
Коляска помчалась во все ноги лошадей; но долго еще позади себя граф Растопчин слышал отдаляющийся безумный, отчаянный крик, а перед глазами видел одно удивленно испуганное, окровавленное лицо изменника в меховом тулупчике.
Как ни свежо было это воспоминание, Растопчин чувствовал теперь, что оно глубоко, до крови, врезалось в его сердце. Он ясно чувствовал теперь, что кровавый след этого воспоминания никогда не заживет, но что, напротив, чем дальше, тем злее, мучительнее будет жить до конца жизни это страшное воспоминание в его сердце. Он слышал, ему казалось теперь, звуки своих слов:
«Руби его, вы головой ответите мне!» – «Зачем я сказал эти слова! Как то нечаянно сказал… Я мог не сказать их (думал он): тогда ничего бы не было». Он видел испуганное и потом вдруг ожесточившееся лицо ударившего драгуна и взгляд молчаливого, робкого упрека, который бросил на него этот мальчик в лисьем тулупе… «Но я не для себя сделал это. Я должен был поступить так. La plebe, le traitre… le bien publique», [Чернь, злодей… общественное благо.] – думал он.
У Яузского моста все еще теснилось войско. Было жарко. Кутузов, нахмуренный, унылый, сидел на лавке около моста и плетью играл по песку, когда с шумом подскакала к нему коляска. Человек в генеральском мундире, в шляпе с плюмажем, с бегающими не то гневными, не то испуганными глазами подошел к Кутузову и стал по французски говорить ему что то. Это был граф Растопчин. Он говорил Кутузову, что явился сюда, потому что Москвы и столицы нет больше и есть одна армия.
– Было бы другое, ежели бы ваша светлость не сказали мне, что вы не сдадите Москвы, не давши еще сражения: всего этого не было бы! – сказал он.
Кутузов глядел на Растопчина и, как будто не понимая значения обращенных к нему слов, старательно усиливался прочесть что то особенное, написанное в эту минуту на лице говорившего с ним человека. Растопчин, смутившись, замолчал. Кутузов слегка покачал головой и, не спуская испытующего взгляда с лица Растопчина, тихо проговорил:
– Да, я не отдам Москвы, не дав сражения.
Думал ли Кутузов совершенно о другом, говоря эти слова, или нарочно, зная их бессмысленность, сказал их, но граф Растопчин ничего не ответил и поспешно отошел от Кутузова. И странное дело! Главнокомандующий Москвы, гордый граф Растопчин, взяв в руки нагайку, подошел к мосту и стал с криком разгонять столпившиеся повозки.


В четвертом часу пополудни войска Мюрата вступали в Москву. Впереди ехал отряд виртембергских гусар, позади верхом, с большой свитой, ехал сам неаполитанский король.
Около середины Арбата, близ Николы Явленного, Мюрат остановился, ожидая известия от передового отряда о том, в каком положении находилась городская крепость «le Kremlin».
Вокруг Мюрата собралась небольшая кучка людей из остававшихся в Москве жителей. Все с робким недоумением смотрели на странного, изукрашенного перьями и золотом длинноволосого начальника.
– Что ж, это сам, что ли, царь ихний? Ничево! – слышались тихие голоса.
Переводчик подъехал к кучке народа.
– Шапку то сними… шапку то, – заговорили в толпе, обращаясь друг к другу. Переводчик обратился к одному старому дворнику и спросил, далеко ли до Кремля? Дворник, прислушиваясь с недоумением к чуждому ему польскому акценту и не признавая звуков говора переводчика за русскую речь, не понимал, что ему говорили, и прятался за других.