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