Yadis/XRI and OpenID
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Yadis/XRI and OpenID

  • 6,792 views
Uploaded on

ミンナニハナイショダヨ

ミンナニハナイショダヨ

More in: Technology , Design
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
6,792
On Slideshare
6,775
From Embeds
17
Number of Embeds
2

Actions

Shares
Downloads
35
Comments
1
Likes
2

Embeds 17

http://www.slideshare.net 16
https://www2.socialtext.net 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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