More Related Content
Similar to 080620 Identity Conference #2 hiroki
Similar to 080620 Identity Conference #2 hiroki (20)
080620 Identity Conference #2 hiroki
- 1. NTT Information Sharing Platform Laboratories
Liberty Alliance ID-WSF2.0 仕様
について
NTT情報流通プラットフォーム研究所
伊藤 宏樹
itoh.hiroki@lab.ntt.co.jp
- 2. Agenda
NTT Information Sharing Platform Laboratories
1. ID-WSF の復習
2. 「ピザ屋と酒屋」
3. シーケンス追っかけ
2
- 4. 1.1. ID-WSF (Web Service Framework) とは
NTT Information Sharing Platform Laboratories
s ユーザの属性情報をサーバ間で流通させる際の手続き、デー
タモデルを定義
DS
WSP (Discovery Service)
(Web Service Provider = 属性提供者)
住所
黒子
氏名
この人の住所教えて
UA WSC
(User Agent) (Web Service Consumer = 属性利用者)
ユーザの住所や氏名等、データモデルの書式は ID-SIS
(Service Interface Specifications) にて規定 (後述)
4
- 5. 1.2. ID-WSF の動作イメージ (簡略版)
NTT Information Sharing Platform Laboratories
WSP DS
住所
氏名
(3) この人の住所を
教えてください
(2) WSPが
知ってるよ!!
(4) 教えてあげるよ!!
(1) 誰が情報を
ただしユーザが
知っていますか?
okと言ったらね
UA WSC
5
- 7. 2.0. いまから御説明するシナリオ
NTT Information Sharing Platform Laboratories
0. 今から登場する「酒屋サイト」と「ピザ屋サイト」が
SAML、LA でつながっています。
1. ユーザはピザ屋サイトに名前や住所なんかを
登録してあります。
が、酒屋サイトには登録してありません。
2. そこで。。。
7
- 9. 2.1. ID-WSF の利用シーン [2/3]
NTT Information Sharing Platform Laboratories
s ユーザ同意の取得
– 今回は当該属性をWSCに
送ることを許可する
– 当該属性をWSCに送るこ
とを許可しない
– 今後、永続的にWSCに属
性を送ることを許可する
9
- 11. 2.2. ユーザ同意の取得ポリシー
NTT Information Sharing Platform Laboratories
s ユーザ同意の取得例
– 今回は当該属性をWSCに
送ることを許可する
– 当該属性をWSCに送るこ
とを許可しない
– 今後、永続的にWSCに属
性を送ることを許可する
とは
リ いこ検討中
相互運用ポかシを
IGF = Idenいう細
うtity Govern存で Framework s その他の文例案
こ 依 ance
実装 – 要求された属性のうち、
WSCにする以下の項目の
提供を許可
– 今後、このサーバに対して
は永続的に…
– 今後、この項目の属性に
関してはすべてのサーバ
に永続的に…
11
- 13. 3.1. ID-WSF の動作イメージ (少し詳細版)
NTT Information Sharing Platform Laboratories
UA DS
WSC WSP
住所、氏名を登録
(1) ユーザ情報がWSPに登録されていることを通知
住所を他のサイトから取得したい
(2) 誰がこの人の情報を知っていますか? / WSP です
(3-1) この人の住所を教えてくれますか?
(4) WSCに住所を教えてもいいですか?
(3-2) 住所を通知
Out of specifications
サービス提供 ID-WSF 2.0
13
- 14. 3.2. ユーザ情報の登録状態の通知
NTT Information Sharing Platform Laboratories
WSP管理者 WSP DS
Out of specifications
ID-WSF 2.0
サービス登録要求
サービス登録要求
このサイトに登録した SOAP Request
サービス
住所は他のサイトから
サービス登録応答 登録
UA 参照できるようにしたい。
SOAP Response
サービス登録応答
サービス関連付け要求
サービス関連付け要求
SOAP Request
関連付け
サービス関連付け応答 登録
サービス関連付け応答 SOAP Response
ユーザの属性情報の各WSPへの登録状況をDSが把握
14
- 15. 3.3. 誰がこの人の属性を知っていますか? [1/2]
NTT Information Sharing Platform Laboratories
UA WSC IdP
ここでは SAML SP として機能
SSOによるログイン要求
HTTP Redirect
認証要求
HTTP GET
必要に応じてユーザを認証
DS-EPR (Endpoint Reference) を、IDP
Assertion 生成
のAssertion に格納
DS-EPR 生成
認証応答
HTTP
HTTP POST
SAML Assertion から
DS のポインタを取得 Out of specifications
サービス提供 SAML 2.0
SAML SSO 時に IdP から DS のポインタを取得
15
- 16. (詳細) Assertion と DS のポインタの関係 [1/2]
NTT Information Sharing Platform Laboratories
SAML Response
<Response>
<Issuer> <Response> の発行者
https://idp.example.jp/
<Response> メッセージのステータ
<Status> urn:oasis:names:tc:SAML:2.0:status:Success
ス
<Assertion>
<Issuer> <Assertion> の発行者
http://idp.example.jp/
<Subject>
<NameID>
Format ユーザ名の記述フォーマット
urn:oasis:names:tc:SAML:2.0:nameid-format:...
“Alice”, “alice@idp.example.jp”,
@value ユーザ名
“##Pseudo Name (Random chars)##” etc.
認証コンテキスト (認証を行った時
<AuthnStatement>
間、手段等) を記述
属性コンテキスト (IdP が SP に対
<AttributeStatement>
し提供する属性情報) を記述
SAML Assertion
DS–EPR は SAML Assertion の <AttributeStatement> に記述される
16
- 17. (詳細) Assertion と DS のポインタの関係 [2/2]
NTT Information Sharing Platform Laboratories
<AttributeStatement>
<Attribute>
AttributeValue 内に記述する値のタイ
Name urn:liberty:disco-epr:2006-08
プを指定
<AttributeValue>
<EndPointReference>
<Address> DS の EndPointAddress
https://ds.example.jp/
<Metadata>
<ProviderID> DS の Service Instance URI
https://ds.example.jp/disco
EndPointReference で示されるエンティ
<Servicetype> urn:liberty:disco:2006-08
ティで提供されるサービスを指定
<SecurityContext>
Token で使用する認証トークンのプロフ
<SecurityMechID> urn:liberty:security:2006-08:TLS:SAMLV2
ァイルを指定
<Token>
EPR で指定したエンティティ(ここでは
<Assertion>
DS)に対して有効な認証トークン
重要なのは EPR に含まれる <Metadata>
DS の場所が判る & DSアクセス時の認証トークンが貰える
17
- 18. 3.3. 誰がこの人の属性を知っていますか? [2/2]
NTT Information Sharing Platform Laboratories
UA WSC DS
コンテンツ要求
他のサイトからユーザ
情報を貰う必要あり
DS のポインタを参照、サービス検索条件、属性検索条件取得
サービス検索要求 SOAP Request
(DSのポインタ+サービス検索条件) 該当WSP
検索
DS-EPR とサービス検索条件をもとにして
EPR 生成
、該当するWSPを検索、WSP-EPRを生成
応答 SOAP Response
Out of specifications
(WSPのポインタ)
ID-WSF 2.0
DS からユーザ属性を持つ WSP のポインタを取得
18
- 19. (詳細) DS への WSP のポインタの要求
NTT Information Sharing Platform Laboratories
IdP から貰った Assertion を担保に DS に問い合わせを行う
<Envelope>
<Header>
DS の Service Instance URL
<To> https://ds.example.jp/ds
<Security>
IdPがさっき発行した Assertion
<Assertion>
をそのまま利用
<Body>
<Query>
<RequestedServiceType>
WSPに要求するユーザ属性のプ
<ServiceType> urn:liberty:id-sis-pp:2003-08
ロファイルを指定
WSPにユーザ属性を要求する際
に使いたい認証トークンの形式
<SecurityMechID> urn:liberty:security:2006-08:ClientTLS:SAMLV2
を指定
DS は WSP への問い合わせに有効な Assertion を発行する
= 「DS は IdP を兼ねる」理由の一つ
19
- 20. (詳細) DS による WSP のポインタの応答
NTT Information Sharing Platform Laboratories
<Envelope>
<Header>
<To> https://wsc.example.jp/wsc
<Body>
<QueryResponse>
<EndPointReference>
<Address> WSP の EndPointAddress
https://wsp.example.jp/
<Metadata>
<ProviderID> WSP の Service Instance URI
https://wsp.example.jp/wsp
<ServiceType> urn:liberty:id-sis-pp:2003-08
<SecurityContext>
<Token>
Token で使用する認証トークンのプロ
<SecurityMechID> urn:liberty:security:2006-08:TLS:SAMLV2
ファイルを指定
EPR で指定したエンティティに対して
<Assertion>
有効な認証トークン
DS は WSP の場所を応答するとともに、
WSPへのアクセスに有効な Assertion を発行する
20
- 21. 3.4. この人の属性を教えてもらえますか?
NTT Information Sharing Platform Laboratories
UA WSC WSP
属性要求
運用ポリシ
SOAP Request
参照
開示可否判断 NG
属性応答 (ユーザの同意を要求)
SOAP Fault
運用ポリシ
ユーザ同意の取得 (後述) ステータス保持
属性要求
運用ポリシ
SOAP Request
参照
開示可否判断 OK
Out of specifications
属性応答
ID-WSF 2.0
属性に基づくコンテンツ応答 SOAP Response
WSP はユーザ同意をもとに WSC に属性を提供
21
- 22. (詳細) WSC から WSP への属性要求
NTT Information Sharing Platform Laboratories
DS から貰った Assertion を担保に WSP に問い合わせを行う
<Envelope>
<Header>
<To> https://wsp.example.jp/wsp
<Security>
DS が発行した WSP 向け Assertion
<Assertion>
<Body>
<Query>
<QueryItem>
WSC側で任意につける要素ごとの名前
itemID name
取得したい属性の要素を ID-SIS に従って
<Select> /pp:PP/pp:CommonName
記述
: : :
: : :
WSCが必要とする属性の要素を
<QueryItem>
複数個要求可能
ID-SIS ではユーザプロファイルの記法を XPATH 形式で定義
22
- 23. (詳細) WSP の WSC に対する属性の応答
NTT Information Sharing Platform Laboratories
この応答例は属性が提供できる場合
<Envelope>
<Header>
<To> https://wsc.example.jp/wsc
<Body>
<QueryResponse>
<Status> OK
<Data>
<Query> にて指定した各要素ごとの名前を
itemIDRef name
参照する
<CommonName>
<CN>
<FN> Itoh
<SN> Hiroki
<LCN>
lang ja
ローカライズ可能
<LFN> 伊藤
<LSN> 宏樹
WSPのポリシーと合致しない場合(例:ユーザ同意が取れていない場合)、
一度エラーを返却し、WSC はユーザ同意取得を試みる
23
- 24. 3.5. 誰某にあなたの情報を教えてもいいですか?
NTT Information Sharing Platform Laboratories
UA WSC WSP
属性応答 (ユーザの同意を要求)
SOAP Fault
同意確認サービスのURLを通知
HTTP Redirect
同意確認サービス要求
HTTP GET
ユーザの同意を取得
ステータスをどう運用するか? は前述の通り 運用ポリシ
ステータス保持
同意確認サービス要求
HTTP Redirect
HTTP GET
Out of specifications
属性要求
ID-WSF 2.0
SOAP Request
ユーザ同意の取得方法は規定の範囲外
24
- 25. (詳細) ユーザ同意の確認サービス要求
NTT Information Sharing Platform Laboratories
<InteractionRequest>
<Inquiry>
id interactionsvc-20080618asdfasdf この <InteractionRequest> の S/N
<Help>
詳細情報(agreement等)を記載したwebペー
moreLink https://wsp.example.jp/notice.html
ジがある場合
あなたは wsc.example.jp において wsp.example.jp に登
@value 録してあるあなたの情報を取得させようとしましたが、
wsp.example.jp のポリシーにより(以下略)
<Select>
あなたの住所を wsc.example.jp に提供してもよいです
<Label>
か?
<Value> no デフォルト値
<Item>
Value の候補としては
Value yes
Yes, once (今回だけOK)
<Hint> 今回のみ wsc.example.jp に提供します。
Not this time (NG)
: :
No, never (永続的にNG)
<Item>
Yes, always (いつでもOK)
Value no
などが考えられる。(実装依存)
<Hint> wsc.example.jp には提供しません。
SAML HTTP Binding のような形で、
WSC から WSP に対し、サービスを要求する
25
- 26. (詳細) ユーザ同意の確認サービス応答
NTT Information Sharing Platform Laboratories
<InteractionResponse>
<Status>
Code OK or others
<InteractionStatement>
<Inquiry>
id interactionsvc-20080618asdfasdf 要求元 <InteractionRequest> の S/N
<Select>
<Select> 要素と <Label> 要素は <InteractionRequest>
あなたの住所を wsc.example.jp に提供して にて記述した内容をそのまま返却する
<Label>
もよいですか?
<Value> yes ユーザの選択した値
<InteractionResponse> に対する XML dSig
<Signature>
をつけてもよい
<InteractionRequest> に含まれる <Inquiry> 要素のうち、
ユーザの選択した要素をそのまま返却する
26