29
dentity Conference #01 Yadis/XRI and OpenID =zigorou Toru Yamaguchi <[email protected]>

Yadis/XRI and OpenID

Embed Size (px)

DESCRIPTION

ミンナニハナイショダヨ

Citation preview

Page 1: Yadis/XRI and OpenID

Identity Conference #01

Yadis/XRI andOpenID

Yadis/XRI andOpenID

=zigorouToru Yamaguchi <[email protected]>

Page 2: Yadis/XRI and OpenID

Apr 14, 2023 2

AgendaAgenda

Yadis プロトコル XRI と i-name

Page 3: Yadis/XRI and OpenID

Apr 14, 2023 3

Yadis protocolYadis protocol

Yadis Protocol

Page 4: Yadis/XRI and OpenID

Apr 14, 2023 4

Yadis protocolYadis protocol

Yadis protocol とは何か http://yadis.org/wiki/What_is_Yadis

与えられた URL からどのようなサービスが利用出来るかを提供する為のプロトコル

SSO を提供するような認証サービスとか プロフィール交換やフォームの補完の為の

サービス ブログのアンチスパムとか

つまり URL から使えるサービスを discovery する為のプロトコル

Page 5: Yadis/XRI and OpenID

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

Page 6: Yadis/XRI and OpenID

Apr 14, 2023 6

Yadis protocolYadis protocol

動作概要 Yadis ID(URL ないしは XRI) から実際に Y

アクセスして Resource Descriptor URL を何らかの方法で得る

Resource Descriptor URL にアクセスすると XRDS 文書が得られる

XRDS 文書を見ると Yadis ID にひもづく利用可能なサービス一覧を取得出来る

Page 7: Yadis/XRI and OpenID

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 がそれに当たる

Page 8: Yadis/XRI and OpenID

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 の所在

Page 9: Yadis/XRI and OpenID

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 を行う

Page 10: Yadis/XRI and OpenID

Apr 14, 2023 10

Yadis protocolYadis protocol

Yadis document 概要 ルート要素は XRDS 要素 XRDS 要素の子要素は XRD 要素 XRD 要素の子要素は Service 要素 Service 要素の子要素は Type, URI 要素 Service 要素 , URI 要素は priority 属性を

持っても良い priority は小さい数値ほど優先

Service 要素の中にそのサービス固有の要素を含めても良い

Page 11: Yadis/XRI and OpenID

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>

Page 12: Yadis/XRI and OpenID

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 になる

Page 13: Yadis/XRI and OpenID

Apr 14, 2023 13

Yadis protocolYadis protocol

Yadis の有用性 HTML Based discovery で出来ない事は全

て有用性と考えられる 異なる認証サービスや ID にひもづくサービ

スを列挙する事が出来る 特定のサービスでも細かな Type 要素の指定

によって、具体的にどのような機能を持っているかを RP が判別出来る

c.f.) Attribute Exchange(AX) に対応してるかどうか サービス固有の要素を指定する事によってよ

り具体的な記述が可能

Page 14: Yadis/XRI and OpenID

Apr 14, 2023 14

Yadis の問題点 OpenID Provider側で余計な実装が増える

こと OpenID Provider としてだけ動作するのであれば、 Yadis protocol に対応する必然性は無い ( 旧来の HTML Base で構わない )

その先に XRDS と言う Yadis 文書より複雑な仕様がある>< [XRI Resolution 2.0] Yadis が規定している要素よりももっといっぱいある orz...

Page 15: Yadis/XRI and OpenID

Apr 14, 2023 15

XRI and i-nameXRI and i-name

XRI and i-name

Page 16: Yadis/XRI and OpenID

Apr 14, 2023 16

XRI and i-nameXRI and i-name

XRI とは? IRI[RFC 3987]/URI[RFC 3986] のシンタッ

クスを踏襲 抽象的な「名前」を具体的な「場所」を

指し示すようにデザインされた識別子 何故抽象的にする必要性があるのかがまだ理解出来ない

=nat さんが飲み会で補足説明してくれるハズ 場所にはどのような物があるのか

http(s) 以外を指し示す事も可能 ( 最終的に URI に変換できるから )

http(s) 以外に何に使うの?

Page 17: Yadis/XRI and OpenID

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 の例と同じだと考えて良い

Page 18: Yadis/XRI and OpenID

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 が必須

Page 19: Yadis/XRI and OpenID

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 = “=” / “@” / “+” / “$”

Page 20: Yadis/XRI and OpenID

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 が規

定している他の技術仕様を指し示す為のシンボル

Page 21: Yadis/XRI and OpenID

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 と言う

Page 22: Yadis/XRI and OpenID

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-

こういうのはダメ!

Page 23: Yadis/XRI and OpenID

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

Page 24: Yadis/XRI and OpenID

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/ も同様の機能

があるっぽぃ より高機能に思えるが使い方が書いてあるオ

ンラインリソースを見つけられない><

Page 25: Yadis/XRI and OpenID

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)

Page 26: Yadis/XRI and OpenID

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 を他者に提供出来る

Page 27: Yadis/XRI and OpenID

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ライブラリは無さそう

Page 28: Yadis/XRI and OpenID

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

Page 29: Yadis/XRI and OpenID

Apr 14, 2023 29

Thanks ご清聴ありがとうございました