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="http://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="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>
Такой XRDS-документ, полученный для данного URL с использованием любого из перечисленных механизмов, выражает следующую информацию:
- Этот URL является URL идентификатора Yadis.
- Этот URL поддерживает протокол OpenID, через два сервера и два делегата.
- Этот URL поддерживает версию 1.0 и версию 2.0 протокола LID, с помощью делегата.
- Для входа пользователей, владелец URL предпочитает использование учетных записей их LiveJournal и протокол OpenID (приоритет 10). Если это невозможно, (например, зависимая сторона не поддерживает OpenID, или сервер LiveJournal недоступен), владелец хотел бы использовать URL LID http://mylid.net/liddemouser (приоритет 20), или сервис MyOpenID (приоритет 50).
LID, OpenID и сообщество разработчиков
Yadis был предложен разработчиками протоколов Light-Weight Identity (LID) и OpenID. К этому сотрудничеству присоединились члены OASIS, Технический Комитет XRI.
Yadis является открытой инициативой, так что другие разработчики начинают использовать описания XRDS, пользуясь возможностью выбирать баланс между легкостью реализации, с одной стороны, и количеством реализованного функционала.
См. также
Ссылки
- Проект Yadis (англ.)
- Реализации Yadis (англ.)
- Раздел о Yadis на OpenIDEnabled.com (англ.)
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.