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 находится:
- В нестандартном HTTP-заголовке
X-XRDS-Location
, - В эквивалентном meta-теге в секции HEAD HTML-документа
<meta http-equiv="X-XRDS-Location" content="example.com/yadis.xml">
, - или отдается при запросе специального 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] (англ.)
<imagemap>: неверное или отсутствующее изображение |
Для улучшения этой статьи желательно?:
|
Отрывок, характеризующий Yadis
Он поравнялся с коляской и бежал с ней рядом.– Трижды убили меня, трижды воскресал из мертвых. Они побили каменьями, распяли меня… Я воскресну… воскресну… воскресну. Растерзали мое тело. Царствие божие разрушится… Трижды разрушу и трижды воздвигну его, – кричал он, все возвышая и возвышая голос. Граф Растопчин вдруг побледнел так, как он побледнел тогда, когда толпа бросилась на Верещагина. Он отвернулся.
– Пош… пошел скорее! – крикнул он на кучера дрожащим голосом.
Коляска помчалась во все ноги лошадей; но долго еще позади себя граф Растопчин слышал отдаляющийся безумный, отчаянный крик, а перед глазами видел одно удивленно испуганное, окровавленное лицо изменника в меховом тулупчике.
Как ни свежо было это воспоминание, Растопчин чувствовал теперь, что оно глубоко, до крови, врезалось в его сердце. Он ясно чувствовал теперь, что кровавый след этого воспоминания никогда не заживет, но что, напротив, чем дальше, тем злее, мучительнее будет жить до конца жизни это страшное воспоминание в его сердце. Он слышал, ему казалось теперь, звуки своих слов:
«Руби его, вы головой ответите мне!» – «Зачем я сказал эти слова! Как то нечаянно сказал… Я мог не сказать их (думал он): тогда ничего бы не было». Он видел испуганное и потом вдруг ожесточившееся лицо ударившего драгуна и взгляд молчаливого, робкого упрека, который бросил на него этот мальчик в лисьем тулупе… «Но я не для себя сделал это. Я должен был поступить так. La plebe, le traitre… le bien publique», [Чернь, злодей… общественное благо.] – думал он.
У Яузского моста все еще теснилось войско. Было жарко. Кутузов, нахмуренный, унылый, сидел на лавке около моста и плетью играл по песку, когда с шумом подскакала к нему коляска. Человек в генеральском мундире, в шляпе с плюмажем, с бегающими не то гневными, не то испуганными глазами подошел к Кутузову и стал по французски говорить ему что то. Это был граф Растопчин. Он говорил Кутузову, что явился сюда, потому что Москвы и столицы нет больше и есть одна армия.
– Было бы другое, ежели бы ваша светлость не сказали мне, что вы не сдадите Москвы, не давши еще сражения: всего этого не было бы! – сказал он.
Кутузов глядел на Растопчина и, как будто не понимая значения обращенных к нему слов, старательно усиливался прочесть что то особенное, написанное в эту минуту на лице говорившего с ним человека. Растопчин, смутившись, замолчал. Кутузов слегка покачал головой и, не спуская испытующего взгляда с лица Растопчина, тихо проговорил:
– Да, я не отдам Москвы, не дав сражения.
Думал ли Кутузов совершенно о другом, говоря эти слова, или нарочно, зная их бессмысленность, сказал их, но граф Растопчин ничего не ответил и поспешно отошел от Кутузова. И странное дело! Главнокомандующий Москвы, гордый граф Растопчин, взяв в руки нагайку, подошел к мосту и стал с криком разгонять столпившиеся повозки.
В четвертом часу пополудни войска Мюрата вступали в Москву. Впереди ехал отряд виртембергских гусар, позади верхом, с большой свитой, ехал сам неаполитанский король.
Около середины Арбата, близ Николы Явленного, Мюрат остановился, ожидая известия от передового отряда о том, в каком положении находилась городская крепость «le Kremlin».
Вокруг Мюрата собралась небольшая кучка людей из остававшихся в Москве жителей. Все с робким недоумением смотрели на странного, изукрашенного перьями и золотом длинноволосого начальника.
– Что ж, это сам, что ли, царь ихний? Ничево! – слышались тихие голоса.
Переводчик подъехал к кучке народа.
– Шапку то сними… шапку то, – заговорили в толпе, обращаясь друг к другу. Переводчик обратился к одному старому дворнику и спросил, далеко ли до Кремля? Дворник, прислушиваясь с недоумением к чуждому ему польскому акценту и не признавая звуков говора переводчика за русскую речь, не понимал, что ему говорили, и прятался за других.