Yadis/XRI and OpenID =zigorou Toru Yamaguchi <zigorou@cpan.org>
Agenda <ul><li>Yadis プロトコル </li></ul><ul><li>XRI  と  i-name </li></ul>
Yadis protocol <ul><li>Yadis Protocol </li></ul>
Yadis protocol <ul><li>Yadis protocol とは何か </li></ul><ul><ul><li>http:// yadis.org/wiki/What_is_Yadis </li></ul></ul><ul><...
Yadis protocol <ul><li>OpenID における Yadis protocol の位置づけ </li></ul><ul><ul><li>OpenID Authentication 2.0 の discovery に採用された...
Yadis protocol <ul><li>動作概要 </li></ul><ul><ul><li>Yadis ID(URL ないしは XRI) から実際に Y アクセスして Resource Descriptor URL を何らかの方法で得る...
Yadis protocol <ul><li>重要な用語  (1) </li></ul><ul><ul><li>Yadis User </li></ul></ul><ul><ul><ul><li>Yadis ID を持ってるユーザー </li>...
Yadis Protocol <ul><li>重要な用語  (2) </li></ul><ul><ul><li>Yadis document </li></ul></ul><ul><ul><ul><li>Yadis Resource Descr...
Yadis protocol <ul><li>Yadis protocol sequence </li></ul>Yadis ID へ GET or HEAD X-XRDS-Location を meta 要素で持つ X-XRDS-Locati...
Yadis protocol <ul><li>Yadis document  概要 </li></ul><ul><ul><li>ルート要素は XRDS 要素 </li></ul></ul><ul><ul><li>XRDS 要素の子要素は XRD...
Yadis protocol <ul><li>Yadis document の例 </li></ul>$ curl -H &quot;Accept: application/xrds+xml&quot; http://zigorou.myope...
Yadis protocol <ul><li>Yadis document 中の要素 </li></ul><ul><ul><li>Service 要素 </li></ul></ul><ul><ul><ul><li>具体的にサービスが提供している...
Yadis protocol <ul><li>Yadis の有用性 </li></ul><ul><ul><li>HTML Based discovery で出来ない事は全て有用性と考えられる </li></ul></ul><ul><ul><ul...
<ul><li>Yadis の問題点 </li></ul><ul><ul><li>OpenID Provider 側で余計な実装が増える </li></ul></ul><ul><ul><ul><li>こと OpenID Provider として...
XRI and i-name <ul><li>XRI and i-name </li></ul>
XRI and i-name <ul><li>XRI とは? </li></ul><ul><ul><li>IRI[RFC 3987]/URI[RFC 3986] のシンタックスを踏襲 </li></ul></ul><ul><ul><li>抽象的...
XRI and i-name <ul><li>OpenID における XRI の位置づけ </li></ul><ul><ul><li>OpenID Authentication 2.0 で XRI を Identifier として使えるようにな...
XRI and i-name <ul><li>XRI Syntax (1) - Basic </li></ul><ul><ul><li>XRI の基本的な構造  ( ざっくり版 ) </li></ul></ul><ul><ul><ul><li>...
XRI and i-name <ul><li>XRI Syntax (2) - XRI Authority </li></ul><ul><ul><li>absolute-XRI = [xri://]  xri-hier-part  [“?” i...
XRI and i-name <ul><li>XRI Syntax (3) - Global Context Symbol Authority </li></ul><ul><ul><li>“ =”  は  Person </li></ul></...
XRI and i-name <ul><li>i-name </li></ul><ul><ul><li>GCS Authority のうち” @” と” =” で表される XRI の事と言って良さそう </li></ul></ul><ul><u...
XRI and i-name <ul><li>i-name example </li></ul><ul><ul><li>gcs-authority part は英数字以外は” .”, “-” が許されている </li></ul></ul><ul...
XRI and i-name <ul><li>Community i-name </li></ul><ul><ul><li>gcs authority part 以下に” *” で Community i-name と言うサブアカウントみたいな...
XRI and i-name <ul><li>XRI Proxy Resolver </li></ul><ul><ul><li>http://xri.net/ xri-no-scheme </li></ul></ul><ul><ul><li>x...
XRI and i-name <ul><li>i-service </li></ul><ul><ul><li>i-name プロバイダが提供しているサービス </li></ul></ul><ul><ul><li>SSO, Contact, Fo...
XRI and i-name <ul><li>XRI / i-name の有用性 </li></ul><ul><ul><li>i-nameプロバイダは基本的にエスクロー(仲介)サービスとしてクリアしなければならない課題が多いので、逆に言えば信頼...
XRI and i-name <ul><li>XRI の欠点 </li></ul><ul><ul><li>基本的に有償 </li></ul></ul><ul><ul><ul><li>その性質上止むを得ないとしても Web の世界では余り受け入れ...
XRI and i-name <ul><li>参考となる Web 上のリソース </li></ul><ul><ul><li>http://yadis.org/wiki/What_is_Yadis </li></ul></ul><ul><ul><...
<ul><li>Thanks </li></ul><ul><ul><li>ご清聴ありがとうございました </li></ul></ul>
Upcoming SlideShare
Loading in...5
×

Yadis/XRI and OpenID

5,303

Published on

ミンナニハナイショダヨ

Published in: Technology, Design
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
5,303
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
36
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

Yadis/XRI and OpenID

  1. 1. Yadis/XRI and OpenID =zigorou Toru Yamaguchi <zigorou@cpan.org>
  2. 2. Agenda <ul><li>Yadis プロトコル </li></ul><ul><li>XRI と i-name </li></ul>
  3. 3. Yadis protocol <ul><li>Yadis Protocol </li></ul>
  4. 4. Yadis protocol <ul><li>Yadis protocol とは何か </li></ul><ul><ul><li>http:// yadis.org/wiki/What_is_Yadis </li></ul></ul><ul><ul><ul><li>与えられた URL からどのようなサービスが利用出来るかを提供する為のプロトコル </li></ul></ul></ul><ul><ul><ul><li>SSO を提供するような認証サービスとか </li></ul></ul></ul><ul><ul><ul><li>プロフィール交換やフォームの補完の為のサービス </li></ul></ul></ul><ul><ul><ul><li>ブログのアンチスパムとか </li></ul></ul></ul><ul><ul><li>つまり URL から使えるサービスを discovery する為のプロトコル </li></ul></ul>
  5. 5. Yadis protocol <ul><li>OpenID における Yadis protocol の位置づけ </li></ul><ul><ul><li>OpenID Authentication 2.0 の discovery に採用された。 [7.3 discovery] </li></ul></ul><ul><ul><ul><li>XRI ならば XRI Proxy Resolver を介して XRDS 文書が返って来る </li></ul></ul></ul><ul><ul><ul><li>URL ならば最初に Yadis protocol で試してみる。結果は XRDS 文書 </li></ul></ul></ul><ul><ul><ul><li>以上がダメなら旧来どおり HTML ベースの discovery </li></ul></ul></ul>
  6. 6. Yadis protocol <ul><li>動作概要 </li></ul><ul><ul><li>Yadis ID(URL ないしは XRI) から実際に Y アクセスして Resource Descriptor URL を何らかの方法で得る </li></ul></ul><ul><ul><li>Resource Descriptor URL にアクセスすると XRDS 文書が得られる </li></ul></ul><ul><ul><li>XRDS 文書を見ると Yadis ID にひもづく利用可能なサービス一覧を取得出来る </li></ul></ul>
  7. 7. Yadis protocol <ul><li>重要な用語 (1) </li></ul><ul><ul><li>Yadis User </li></ul></ul><ul><ul><ul><li>Yadis ID を持ってるユーザー </li></ul></ul></ul><ul><ul><li>Yadis URL </li></ul></ul><ul><ul><ul><li>Yadis ID とほぼ等価。 Yadis ID が URL なら一致、 XRI のような物ならば XRI から変換した URL </li></ul></ul></ul><ul><ul><li>Yadis Resource </li></ul></ul><ul><ul><ul><li>Yadis protocol を使って複数のサービスの所在を提供するシステムの事。 OpenID で言えば OpenID Provider がそれに当たる </li></ul></ul></ul>
  8. 8. Yadis Protocol <ul><li>重要な用語 (2) </li></ul><ul><ul><li>Yadis document </li></ul></ul><ul><ul><ul><li>Yadis Resource Descriptor を含む XML 文書 </li></ul></ul></ul><ul><ul><li>Yadis Resource Descriptor </li></ul></ul><ul><ul><ul><li>Yadis document の要素。 Yadis ID を使う事が出来るサービスを識別する為に用いる </li></ul></ul></ul><ul><ul><ul><li>まぁ大体 Yadis document と同じ意味 </li></ul></ul></ul><ul><ul><li>Resource Descriptor URL </li></ul></ul><ul><ul><ul><li>Yadis document の所在 </li></ul></ul></ul>
  9. 9. Yadis protocol <ul><li>Yadis protocol sequence </li></ul>Yadis ID へ GET or HEAD X-XRDS-Location を meta 要素で持つ X-XRDS-Location をレスポンスヘッダで持つ X-XRDS-Location ヘッダを含む Or / And Content-Type が application/xrds+xml 文書の mimetype が application/xrds+xml Yadis Document (XRDS document) Resource Descriptor URL に GET X-XRDS-Location ヘッダがある X-XRDS-Location ヘッダがない HEAD の場合で meta 要素にあり、他が該当しない場合は改めて GET を行う
  10. 10. Yadis protocol <ul><li>Yadis document 概要 </li></ul><ul><ul><li>ルート要素は XRDS 要素 </li></ul></ul><ul><ul><li>XRDS 要素の子要素は XRD 要素 </li></ul></ul><ul><ul><li>XRD 要素の子要素は Service 要素 </li></ul></ul><ul><ul><li>Service 要素の子要素は Type , URI 要素 </li></ul></ul><ul><ul><li>Service 要素 , URI 要素は priority 属性を持っても良い </li></ul></ul><ul><ul><ul><li>priority は小さい数値ほど優先 </li></ul></ul></ul><ul><ul><li>Service 要素の中にそのサービス固有の要素を含めても良い </li></ul></ul>
  11. 11. Yadis protocol <ul><li>Yadis document の例 </li></ul>$ curl -H &quot;Accept: application/xrds+xml&quot; http://zigorou.myopenid.com/ <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <xrds:XRDS xmlns:xrds=&quot;xri://$xrds&quot; xmlns:openid=&quot;http://openid.net/xmlns/1.0“ xmlns=&quot;xri://$xrd*($v*2.0)&quot;> <XRD> <Service priority=&quot;0&quot;> <Type>http://specs.openid.net/auth/2.0/signon</Type> <Type>http://openid.net/sreg/1.0</Type> <Type>http://openid.net/extensions/sreg/1.1</Type> <Type> http://schemas.openid.net/pape/policies/2007/06/phishing-resistant </Type> <Type>http://openid.net/srv/ax/1.0</Type> <URI>http://www.myopenid.com/server</URI> <LocalID>http://zigorou.myopenid.com/</LocalID> </Service> <!-- 中略 --> </XRD> </xrds:XRDS>
  12. 12. Yadis protocol <ul><li>Yadis document 中の要素 </li></ul><ul><ul><li>Service 要素 </li></ul></ul><ul><ul><ul><li>具体的にサービスが提供している内容を記述する </li></ul></ul></ul><ul><ul><li>Type 要素 </li></ul></ul><ul><ul><ul><li>Service で対応している物をバージョンを明記して指定する </li></ul></ul></ul><ul><ul><ul><ul><li>http://specs.openid.net/auth/2.0/signon </li></ul></ul></ul></ul><ul><ul><ul><ul><li>OpenID Authentication 2.0 に対応してるよって事です </li></ul></ul></ul></ul><ul><ul><li>URI 要素 </li></ul></ul><ul><ul><ul><li>そのサービスに必要な URI </li></ul></ul></ul><ul><ul><ul><li>OpenID の場合だと OP End Point URL になる </li></ul></ul></ul>
  13. 13. Yadis protocol <ul><li>Yadis の有用性 </li></ul><ul><ul><li>HTML Based discovery で出来ない事は全て有用性と考えられる </li></ul></ul><ul><ul><ul><li>異なる認証サービスや ID にひもづくサービスを列挙する事が出来る </li></ul></ul></ul><ul><ul><ul><li>特定のサービスでも細かな Type 要素の指定によって、具体的にどのような機能を持っているかを RP が判別出来る </li></ul></ul></ul><ul><ul><ul><ul><li>c.f.) Attribute Exchange(AX) に対応してるかどうか </li></ul></ul></ul></ul><ul><ul><ul><li>サービス固有の要素を指定する事によってより具体的な記述が可能 </li></ul></ul></ul>
  14. 14. <ul><li>Yadis の問題点 </li></ul><ul><ul><li>OpenID Provider 側で余計な実装が増える </li></ul></ul><ul><ul><ul><li>こと OpenID Provider としてだけ動作するのであれば、 Yadis protocol に対応する必然性は無い ( 旧来の HTML Base で構わない ) </li></ul></ul></ul><ul><ul><li>その先に XRDS と言う Yadis 文書より複雑な仕様がある>< [XRI Resolution 2.0] </li></ul></ul><ul><ul><ul><li>Yadis が規定している要素よりももっといっぱいある orz... </li></ul></ul></ul>
  15. 15. XRI and i-name <ul><li>XRI and i-name </li></ul>
  16. 16. XRI and i-name <ul><li>XRI とは? </li></ul><ul><ul><li>IRI[RFC 3987]/URI[RFC 3986] のシンタックスを踏襲 </li></ul></ul><ul><ul><li>抽象的な「名前」を具体的な「場所」を指し示すようにデザインされた識別子 </li></ul></ul><ul><ul><ul><li>何故抽象的にする必要性があるのかがまだ理解出来ない </li></ul></ul></ul><ul><ul><ul><ul><li>=nat さんが飲み会で補足説明してくれるハズ </li></ul></ul></ul></ul><ul><ul><ul><li>場所にはどのような物があるのか </li></ul></ul></ul><ul><ul><ul><ul><li>http(s) 以外を指し示す事も可能 ( 最終的に URI に変換できるから ) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>http(s) 以外に何に使うの? </li></ul></ul></ul></ul>
  17. 17. XRI and i-name <ul><li>OpenID における XRI の位置づけ </li></ul><ul><ul><li>OpenID Authentication 2.0 で XRI を Identifier として使えるようになった </li></ul></ul><ul><ul><ul><li>c.f.) xri://=zigorou </li></ul></ul></ul><ul><ul><li>XRI は XRI Proxy Resolver を介して、 URI に変換され、その URI が指し示すリソースが XRDS 文書を返す </li></ul></ul><ul><ul><ul><li>ここで初めて OP EndPoint とかが分かる </li></ul></ul></ul><ul><ul><ul><li>Yadis の例と同じだと考えて良い </li></ul></ul></ul>
  18. 18. XRI and i-name <ul><li>XRI Syntax (1) - Basic </li></ul><ul><ul><li>XRI の基本的な構造 ( ざっくり版 ) </li></ul></ul><ul><ul><ul><li>[“xri://”] authority  [”/” path] [”?” query] [”#” fragment] </li></ul></ul></ul><ul><ul><ul><li>XRI Syntax 2.0 に書いてあります </li></ul></ul></ul><ul><ul><ul><li>ABNF 記法 </li></ul></ul></ul><ul><ul><li>と言う訳で URI と同じような構成 </li></ul></ul><ul><ul><li>但し拡張されたシンボルやデリミタが多数ある </li></ul></ul><ul><ul><li>また相対パス指定が出来るので Resolution が必須 </li></ul></ul>
  19. 19. XRI and i-name <ul><li>XRI Syntax (2) - XRI Authority </li></ul><ul><ul><li>absolute-XRI = [xri://] xri-hier-part [“?” iquery] </li></ul></ul><ul><ul><li>xri-hier-part = ( xri-authority / iauthority) xri-path-abempty </li></ul></ul><ul><ul><li>xri-authority = gcs-authority / xref-authority </li></ul></ul><ul><ul><li>gcs-authority = pgcs-authority / rgcs-authority </li></ul></ul><ul><ul><li>pgcs-authority = rgcs-char xri-segment </li></ul></ul><ul><ul><li>rgcs-char = “ = ” / “ @ ” / “ + ” / “ $ ” </li></ul></ul>
  20. 20. XRI and i-name <ul><li>XRI Syntax (3) - Global Context Symbol Authority </li></ul><ul><ul><li>“ =” は Person </li></ul></ul><ul><ul><ul><li>個人を指し示します </li></ul></ul></ul><ul><ul><li>“ @” は Organization </li></ul></ul><ul><ul><ul><li>組織を指し示します </li></ul></ul></ul><ul><ul><li>“ +” は Generic public </li></ul></ul><ul><ul><ul><li>特に何かを制御するような識別子ではなく、特定の同意の下に表現されている </li></ul></ul></ul><ul><ul><li>“ $” は Standard body </li></ul></ul><ul><ul><ul><li>XRI の他の技術仕様の namespace や、 OASIS が規定している他の技術仕様を指し示す為のシンボル </li></ul></ul></ul>
  21. 21. XRI and i-name <ul><li>i-name </li></ul><ul><ul><li>GCS Authority のうち” @” と” =” で表される XRI の事と言って良さそう </li></ul></ul><ul><ul><ul><li>=nat さん合ってますか? w </li></ul></ul></ul><ul><ul><li>i-name の取得が出来て、 i-name から利用出来る各種サービス (i-service) を提供するプロバイダを i-name provider と言う </li></ul></ul>
  22. 22. XRI and i-name <ul><li>i-name example </li></ul><ul><ul><li>gcs-authority part は英数字以外は” .”, “-” が許されている </li></ul></ul><ul><ul><ul><li>=zigorou.masuda </li></ul></ul></ul><ul><ul><ul><li>=zigorou-masuda </li></ul></ul></ul><ul><ul><ul><li>@cybozu.labs </li></ul></ul></ul><ul><ul><ul><li>@cybozu-labs </li></ul></ul></ul><ul><ul><li>末尾は英数字のみ </li></ul></ul><ul><ul><ul><li>=zigorou.masuda- </li></ul></ul></ul><ul><ul><ul><ul><li>こういうのはダメ! </li></ul></ul></ul></ul>
  23. 23. XRI and i-name <ul><li>Community i-name </li></ul><ul><ul><li>gcs authority part 以下に” *” で Community i-name と言うサブアカウントみたいなのを定義出来る </li></ul></ul><ul><ul><ul><li>=zigorou*son </li></ul></ul></ul><ul><ul><ul><li>@cybozu.labs*zigorou </li></ul></ul></ul><ul><ul><ul><li>@hatena*ZIGOROu </li></ul></ul></ul>
  24. 24. XRI and i-name <ul><li>XRI Proxy Resolver </li></ul><ul><ul><li>http://xri.net/ xri-no-scheme </li></ul></ul><ul><ul><li>xri-no-scheme = xri-hier-part [ &quot;?&quot; iquery ] [ &quot;#&quot; ifragment ] </li></ul></ul><ul><ul><ul><li>http://xri.net/=zigorou/ </li></ul></ul></ul><ul><ul><ul><li>curl -H “Accept: application/xrds+xml” http://xri.net/=zigorou/ で XRDS 文書が返ってくる </li></ul></ul></ul><ul><ul><li>どうも http://beta.xri.net/ も同様の機能があるっぽぃ </li></ul></ul><ul><ul><ul><li>より高機能に思えるが使い方が書いてあるオンラインリソースを見つけられない>< </li></ul></ul></ul>
  25. 25. XRI and i-name <ul><li>i-service </li></ul><ul><ul><li>i-name プロバイダが提供しているサービス </li></ul></ul><ul><ul><li>SSO, Contact, Forwarding </li></ul></ul><ul><ul><li>Contact サービスは i-name 間でやり取りできるメールのような物 </li></ul></ul><ul><ul><ul><li>xri://=zigorou/(+contact) </li></ul></ul></ul><ul><ul><li>Forwarding はリダイレクトサービス </li></ul></ul><ul><ul><ul><li>xri://=zigorou/(+blog) </li></ul></ul></ul>
  26. 26. XRI and i-name <ul><li>XRI / i-name の有用性 </li></ul><ul><ul><li>i-nameプロバイダは基本的にエスクロー(仲介)サービスとしてクリアしなければならない課題が多いので、逆に言えば信頼できるプロバイダだと言える </li></ul></ul><ul><ul><li>i-serviceで提供されているようなcontactサービスなどは非常にソーシャルな機能である </li></ul></ul><ul><ul><li>Community i-nameを使えばさらにlow levelなi-nameを他者に提供出来る </li></ul></ul>
  27. 27. XRI and i-name <ul><li>XRI の欠点 </li></ul><ul><ul><li>基本的に有償 </li></ul></ul><ul><ul><ul><li>その性質上止むを得ないとしても Web の世界では余り受け入れられそうにない </li></ul></ul></ul><ul><ul><ul><li>一応無償のもある </li></ul></ul></ul><ul><ul><ul><ul><li>freexri.com </li></ul></ul></ul></ul><ul><ul><ul><ul><li>xrid.net </li></ul></ul></ul></ul><ul><ul><li>最終的には xri.net で提供している XRI Proxy Resolver に問い合わせなければならない (DNS のような仕組みでは無さそう ) </li></ul></ul><ul><ul><ul><li>シングルポイントじゃないか? </li></ul></ul></ul><ul><ul><li>仕様が余りに複雑すぎる </li></ul></ul><ul><ul><ul><li>XRI Relative Reference の解決 </li></ul></ul></ul><ul><ul><ul><ul><li>Local XRI Resolver </li></ul></ul></ul></ul><ul><ul><ul><li>現状 XRI の仕様をまともに impl してる RP ライブラリは無さそう </li></ul></ul></ul>
  28. 28. XRI and i-name <ul><li>参考となる Web 上のリソース </li></ul><ul><ul><li>http://yadis.org/wiki/What_is_Yadis </li></ul></ul><ul><ul><li>http://dev.inames.net/wiki/Main_Page </li></ul></ul><ul><ul><li>http://iss.xdi.org/moin.cgi </li></ul></ul><ul><ul><li>http://www.inames.net/ </li></ul></ul><ul><ul><li>http://www.oasis-open.org/committees/download.php/15376 </li></ul></ul><ul><ul><li>http://docs.oasis-open.org/xri/2.0/specs/cd02/xri-resolution-V2.0-cd-02.html </li></ul></ul>
  29. 29. <ul><li>Thanks </li></ul><ul><ul><li>ご清聴ありがとうございました </li></ul></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×