Расширяемая последовательность дескрипторов ресурсов ( XRDS ) — это формат файла на основе XML , который предоставляет список служб .
Формат XML, используемый XRDS, был первоначально разработан в 2004 году Техническим комитетом OASIS XRI ( extensible resource identifier ) в качестве формата разрешения для XRI. Аббревиатура XRDS была придумана в ходе последующих обсуждений между членами TC XRI и разработчиками OpenID на первом семинаре по интернет-идентификации, состоявшемся в Беркли, Калифорния, в октябре 2005 года.
Протокол обнаружения документа XRDS по URL-адресу был формализован как спецификация Yadis , опубликованная Yadis.org в марте 2006 года. Yadis стал форматом обнаружения служб для OpenID 1.1.
Общая служба обнаружения как для URL, так и для XRI оказалась настолько полезной, что в ноябре 2007 года спецификация XRI Resolution 2.0 официально добавила метод обнаружения XRDS на основе URL (Раздел 6). [1] Этот формат и протокол обнаружения впоследствии стали частью OpenID Authentication 2.0. [2]
В начале 2008 года работа Эрана Хаммера-Лахава над обнаружением OAuth привела к разработке XRDS Simple, профиля XRDS, который ограничивает его самыми базовыми элементами и вводит некоторые расширения для поддержки обнаружения OAuth и других протоколов, использующих определенные методы HTTP . В конце 2008 года XRDS Simple был отменен и объединен обратно с основной спецификацией XRDS, что привело к появлению предстоящего формата XRD 1.0.
Помимо разрешения XRI , примеры типичного использования XRDS включают в себя:
Ниже приведен пример документа XRDS для вымышленного XRI i-name =example . Этот документ обычно запрашивается с веб-сервера через HTTP или HTTPS с использованием типа содержимого application/xrds+xml . Обратите внимание, что внешний элемент контейнера <XRDS> служит контейнером для одного или нескольких элементов <XRD> (Extensible Resource Descriptor). Большинство простых документов XRDS имеют только один XRD. Другие службы, такие как разрешение XRI, могут создавать последовательность XRD в одном документе 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 ref= "xri://=example" > <Query> *example </Query> <Status ceid= "off" cid= "verified" code= "100" /> <Expires> 2008-05-05T00:15:00.000Z </Expires> <ProviderID> xri://= </ProviderID> <!-- раздел синонимов --> <LocalID priority= "10" > !4C72.6C81.D78F.90B2 </LocalID> <EquivID Priority= "10" > http://example.com/example-user </EquivID> <EquivID Priority= "15" > http://example.net/blog </EquivID> <CanonicalID> xri://=!4C72.6C81.D78F.90B2 </CanonicalID> <!-- раздел службы --> <Service> <!-- Служба разрешения XRI --> <ProviderID> xri://=!F83.62B1.44F.2813 </ProviderID> <Type> xri://$res*auth*($v*2.0) </Type> <MediaType> application/xrds+xml </MediaType> <URI Priority= "10" > http://resolve.example.com </URI> <URI Priority= "15" > http://resolve2.example.com </URI> <URI> https://resolve.example.com </URI> </Service> <! -- Служба входа OpenID 2.0 --> <Service priority =" 10 " > <Type> http://specs.openid.net/auth/2.0/signon </Type> <URI> http://www.myopenid.com/server </URI> <LocalID> http://example.myopenid.com/ </LocalID> </Service> <!-- Служба входа OpenID 1.0 --> < Service priority= "20" > <Type> http://openid.net/server/1.0 </Type> <URI> http://www.livejournal.com/openid/server.bml </URI> <openid:Delegate> http://www.livejournal.com/users/example/ </openid:Delegate> </Service> <!-- нетипизированная служба для доступа к файлам медиа-типа JPEG --> <Service priority= "10" > <Type match= "null" /> <Path select= "true" > /media/pictures </Path> <MediaType select= "true" > image/jpeg </MediaType> <URI append= "path" > http://pictures.example.com </URI> </Service> </XRD> </xrds:XRDS>
Документы XRDS могут утверждать ноль или более синонимов для ресурса. В этом контексте синоним — это другой идентификатор ( URI или XRI ), который идентифицирует тот же целевой ресурс. Например, пример документа XRDS выше утверждает четыре синонима:
Полную информацию о поддержке синонимов XRDS см. в документе XRI Resolution 2.0, раздел 5.
Другая основная цель документов XRDS — утверждать службы, связанные с ресурсом, называемые конечными точками служб или SEP . Например, пример документа XRDS выше утверждает четыре конечные точки служб для представленного ресурса:
Полную информацию о конечных точках службы XRDS см. в резолюции XRI 2.0, разделы 4.2 и 13.
В документах XRDS служба идентифицируется с помощью URI или XRI . Ниже приведены списки известных типов служб. [3]
Общее название | URI или XRI | Источник | Учредил |
---|---|---|---|
Постановление органа власти | xri://$res*auth*($v*2.0) | Разрешение XRI 2.0 | Март 2005 г. |
Разрешение прокси | xri://$res*proxy*($v*2.0) | Разрешение XRI 2.0 | Март 2005 г. |
Общее название | URI или XRI | Источник | Учредил |
---|---|---|---|
OpenID 1.0 | http://openid.net/server/1.0 | Аутентификация OpenID 2.0, раздел 14.2.1 | Июнь 2005 г. |
OpenID 1.1 | http://openid.net/server/1.1 | Аутентификация OpenID 2.0, раздел 14.2.1 | Май 2006 г. |
OpenID 2.0 – стандартный вход | http://specs.openid.net/auth/2.0/signon | Аутентификация OpenID 2.0, раздел 7.3.2.1.2 | Декабрь 2007 г. |
OpenID 2.0 – OP Идентификатор входа | http://specs.openid.net/auth/2.0/server | Аутентификация OpenID 2.0, раздел 7.3.2.1.1 | Декабрь 2007 г. |
Обмен атрибутами OpenID 1.0 | http://openid.net/srv/ax/1.0 | Обмен атрибутами OpenID 1.0, раздел 2 | Декабрь 2007 г. |
Общее название | URI или XRI | Источник | Учредил |
---|---|---|---|
OAuth-обнаружение | http://oauth.net/discovery/1.0 | Проект 2 OAuth Discovery | Март 2008 г. |
XRDS — это открытая публичная спецификация OASIS, не требующая уплаты роялти . Технический комитет OASIS XRI с момента своего создания в 2003 году действовал в соответствии с политикой лицензирования без уплаты роялти, как указано в его уставе и на странице IPR.