...

Airline.inc - Liberty Alliance

by user

on
Category: Documents
7

views

Report

Comments

Transcript

Airline.inc - Liberty Alliance
1
2
3
4
5
6
7
8
9
Liberty アーキテクチャ概要
10
バージョン 1.1
11
2003 年 1 月 15 日
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
文書名:liberty-architecture-overview-v1.1
32
告知
33
34
Copyright  2002, 2003 ActivCard; American Express Travel Related Services; America Online,
35
Inc.; Bank of America; Bell Canada; Catavault; Cingular Wireless; Cisco Systems, Inc.; Citigroup;
36
Communicator, Inc.; Consignia; Cyberun Corporation; Deloitte & Touche LLP; Earthlink, Inc.;
37
Electronic Data Systems, Inc.; Entrust, Inc.; Ericsson; Fidelity Investments; France Telecom;
38
Gemplus; General Motors; Hewlett-Packard Company; i2 Technologies, Inc.; Intuit Inc.; MasterCard
39
International; NEC Corporation; Netegrity; NeuStar; Nextel Communications; Nippon Telegraph
40
and Telephone Company; Nokia Corporation; Novell, Inc.; NTT DoCoMo, Inc.; OneName
41
Corporation; Openwave Systems Inc.; PricewaterhouseCoopers LLP; Register.com; RSA Security
42
Inc; Sabre Holdings Corporation; SAP AG; SchlumbergerSema; SK Telecom; Sony Corporation;
43
Sun Microsystems, Inc.; United Airlines; VeriSign, Inc.; Visa International; Vodafone Group Plc;
44
Wave Systems;. All rights reserved.
45
46
本書は、Liberty Alliance の参加企業によって作成されました。本書は、この仕様の実装以外
47
の目的で使用することはできません。この仕様を他で引用することは禁止されています。
48
それ以外の用途でこの文書の複製を希望する場合は、Liberty Alliance まで使用許可について
49
お問い合わせください。
50
51
この仕様の特定要素の実装には、特許権など、第三者が所有する知的所有権の使用許諾権
52
が必要な場合があります。それ以外において本仕様の策定に協力した企業は、かかる第三
53
者の知的所有権の有無を確認することまたは確認しなかったことについて一切責任を負い
54
ません。この仕様は、「無保証で」提供されるものであり、Liberty Alliance の参加企業は、
55
明示的または黙示的を問わず、商品性、第三者の知的所有権を侵害しないこと、特定目的
56
に対する適合性についていかなる保証もいたしません。この仕様の実装にあたっては、
57
Liberty Alliance Project の Web サイト (http://www.projectliberty.org/) にアクセスして、Liberty
58
Alliance 理事会がこれまでに受け取っている「Necessary Claims Disclosure Notices(必要な特許
59
請求範囲の開示に関する告知)」の情報をご確認ください。
60
61
(日本語訳はしがき)
62
この文書の日本語訳においては、原文(英語)で表現されている内容について RFC 文献の
63
日本語訳等を参考にできるだけ正確を期すよう務めましたが、あくまで Liberty 仕様の理解
64
の参考とするにとどめ、Liberty 仕様の実装を検討され、知的所有権を確認する場合、必ず
65
原文や参考文献を参照いただくようお願いいたします。
66
翻訳にあたった Liberty Alliance 参加企業は原文と同様、本文書に係る翻訳の正確性、翻訳
67
された仕様の商品性、第三者の知的所有権を侵害しないこと、特定目的に対する適合性に
68
ついていかなる保証もいたしません。
69
70
Liberty Alliance Project
71
Licensing Administrator
72
c/o IEEE-ISTO
73
445 Hoes Lane
74
Piscataway, NJ 08855-1331, USA
75
[email protected]
76
77
作成者
78
79
Jeff Hodges, Sun Microsystems, Inc.
80
Tom Wason, IEEE - ISTO
81
82
協力企業
83
84
仕様書の作成に協力した Liberty Alliance Project 参加企業は以下のとおりです。
ActivCard
MasterCard International
American Express Travel Related Services
Nextel Communications
America Online, Inc.
Nippon Telegraph and Telephone Company
Bank of America
Nokia Corporation
Bell Canada
Novell, Inc.
Catavault
NTT DoCoMo, Inc.
Cingular Wireless
OneName Corporation
Cisco Systems, Inc.
Openwave Systems Inc.
Citigroup
PricewaterhouseCoopers LLP
Cyberun Corporation
Register.com
Deloitte & Touche LLP
RSA Security Inc
EarthLink, Inc.
Sabre Holdings Corporation
Electronic Data Systems, Inc.
SAP AG
Entrust, Inc.
SchlumbergerSema
Ericsson
Sony Corporation
Fidelity Investments
Sun Microsystems, Inc.
France Telecom
United Airlines
Gemplus
VeriSign, Inc.
General Motors
Visa International
Hewlett-Packard Company
Vodafone Group Plc
i2 Technologies, Inc.
Wave Systems
Intuit Inc.
85
改訂履歴
86
版
日付
作成者
変更内容
1.0
2002 年 3 月 14
Jeff Hodges
Liberty V1.0 に基づき初版草案を作成。
Jeff Hodges
CR 1107: 埋め込みフォームを使用したログイン
日
1.1
2002 年 11 月 5
は、ユーザーのクレデンシャルを SP に開示するこ
日
とが「可能な」だけである。
「HTML フォームより ULR で使用可能なスペース
が大きい」と述べている、949 行の論拠 CR 1103 を
倒置。
CR 1100: 「拒否不能のサポート」に言及。
CR 1102: フェーズ 1 でサポートされる図 17 か?
CR 1101: 本書の第 1.1 節.の説明を追加。
CR 1104: 図 14 は、1 つだけでなく 2 つの関係を表
している。
CR 1099: 認証前にユーザーの同意を取得。
CR 1177: IDP2IDP 連携内における信用関係の確立
について未定義。
1.1 - 04
2002 年 11 月
Tom Wason
15 日
CR1217: 主体者の認証状態情報に関する注記を第
5.4.2 節に加筆。
CR1218: 共通クッキーに関する注記を第 5.6 節に
加筆。
CR1222: ローカルセッションにおける連携終了に
関する注記を第 5.4.1.2 節に加筆。
CR1226: 第 5.4.1 節の、ユーザーハンドルに関する
注記 2 を変更。
1.1 - 05
2002 年 11 月
25 日
Tom Wason
CR1238: 第 5.4.2 節のポリシー/セキュリティに関
する注に、「IdP セッション状態のメンテナンス」
の項を挿入。
CR1247: 第 5.4.1.2 節のポリシー/セキュリティに関
する注に含まれる推奨事項を小文字に変更。
1.1 – 06
2002 年 12 月
Tom Wason
20 日
CR1179: 第 5.7.1.3 節から無関係な[1107]を削除。
CR1270: 第 6 節の参考文献の正規化とフォーマッ
ト整形。
87
88
1.1 最 終
2003 年 1 月 15
版
日
John Kemp
不要な参照先を削除。
89
目次
90
92
1 はじめに........................................................................................................... 9
1.1 本書について ........................................................................................... 9
1.2 Liberty Alliance とは .............................................................................. 10
93
1.2.1 Liberty のビジョン ......................................................................................... 10
94
1.2.2 Liberty のミッション ..................................................................................... 10
91
95
1.3
ネットワークアイデンティティとは ..................................................... 11
96
1.3.1 Liberty の目標 ................................................................................................ 11
97
101
2 Liberty Version 1.0 におけるユーザー体験の例 ............................................. 13
2.1 アイデンティティ連携のユーザー体験の例 .......................................... 14
2.2 シングルサインオンのユーザー体験の例 .............................................. 19
3 Liberty の技術要件の概要............................................................................... 21
3.1 全般的な要件 ......................................................................................... 21
102
3.1.1 クライアントデバイス/ユーザーエージェントの相互運用性 ........................ 21
103
3.1.2 オープン性に関する要件 ............................................................................... 22
98
99
100
104
3.2
機能に関する要件.................................................................................. 22
105
3.2.1 アイデンティティ連携................................................................................... 22
106
3.2.2 認証 ............................................................................................................... 23
107
3.2.3 仮名 ............................................................................................................... 23
108
3.2.4 グローバルログアウト................................................................................... 23
109
111
4 Liberty のセキュリティフレームワーク ......................................................... 24
5 Liberty アーキテクチャ .................................................................................. 26
5.1 Web リダイレクトのアーキテクチャコンポーネント ........................... 28
112
5.1.1 HTTP リダイレクトによるリダイレクト ...................................................... 28
113
5.1.2 フォーム POST によるリダイレクト ............................................................ 29
114
5.1.3 クッキー ........................................................................................................ 30
115
5.1.4 Web リダイレクトのまとめ .......................................................................... 31
116
118
5.2 Web サービスのアーキテクチャコンポーネント................................... 32
5.3 メタデータとスキーマのアーキテクチャコンポーネント ..................... 32
5.4 シングルサインオンとアイデンティティ連携 ....................................... 33
119
5.4.1 アイデンティティ連携................................................................................... 33
120
5.4.2 シングルサインオン ...................................................................................... 40
121
5.4.3 シングルサインオンおよび連携プロトコルのプロファイル ......................... 44
122
5.5 IdP イントロダクション ........................................................................ 49
110
117
123
124
125
5.6
シングルログアウト .............................................................................. 52
5.6.1 シングルログアウトのプロファイル ............................................................. 54
5.7
ユーザー体験のシナリオ例 ................................................................... 55
126
5.7.1 シナリオ:いずれにもログインしていない、共通ドメインクッキーなし ... 55
127
5.7.2 シナリオ:いずれにもログインしていない、共通ドメインクッキーあり ... 60
128
5.7.3 シナリオ:ログイン済み、共通ドメインクッキーあり ................................ 60
129
6 参考文献......................................................................................................... 61
130
131
1 はじめに
132
133
インターネットは、企業、コミュニティ、および個人間の通信の主要な手段となっていま
134
す。アイデンティティの概念は、この手段の重要な構成要素です。現在、インターネット
135
上におけるアイデンティティは、事業主、ポータル、さまざまなコミュニティ、ビジネス
136
サービスなどのさまざまなアイデンティティプロバイダ(IdP)で断片化して扱われます。
137
この断片化のせいで、1対1の企業と顧客との関係や使用感がばらばらで抵抗感があるも
138
のとなっています。
139
140
連携ネットワークアイデンティティは、新しい規模の経済と組み合わさることで、この抵
141
抗感を軽減し、新しいビジネス領域とビジネス機会を実現するための鍵となります。この
142
ような真新しい連携された商取引の世界では、ユーザーのオンラインアイデンティティ、
143
個人情報、個人用のオンライン環境設定、購買傾向と購買実績、商品の嗜好などがユーザ
144
ーによって管理され、ユーザーの選択した組織との間で安全に共有されます。連携ネット
145
ワークアイデンティティモデルでは、適切な当事者によって重要な個人情報が適切に使用
146
されることを保証できるようになります。
147
148
多くの機能を果たす連携アイデンティティ基盤の実現には、段階的なアプローチが可能で
149
す。第 1 段階は、現在一般的に導入されている技術に基づくシンプルな連携アイデンティ
150
ティを使用して、標準化されたマルチベンダー対応の Web ベースのシングルサインオンを
151
確立することです。この文書では、連携アイデンティティを使用してそのようなシングル
152
サインオンを実現するための実行可能なアプローチを提示した Liberty Version 1.0 アーキテ
153
クチャの概要について説明します。この概要では、初めに連携ネットワークアイデンティ
154
ティを要約し、Liberty Version 1.0 において想定される2つのシナリオを例として示し、
155
Liberty の技術要件とセキュリティフレームワークについてまとめた後、Liberty Version 1.0
156
アーキテクチャについて説明します。
157
158
1.1 本書について
159
本書は、標準規定文書ではありません。しかし、ポリシー/セキュリティおよびテクニカル
160
ノートという形で、この仕様を実装または配布する方のためのガイダンスを提供していま
161
す。Liberty アーキテクチャの詳細は、この概要に関連するいくつかの技術文書、特に
162
[LibertyAuthnContext]、[LibertyBindProf]、[LibertyArchImpl]、[LibertyProtSchema]に記載され
163
ています。注:Liberty の技術文書では、ユーザー(User)よりも、より広い概念として主
164
体者(Principal)が使用されます。Liberty 独自の用語の定義は、[LibertyGloss]に記載されて
165
います。また、この文書では、HTTP や SSL などの略語は、既に広く使用されると考え、多
166
くの略語を直接定義することなく使用しています。ただし、これらの略語の定義は、
167
[LibertyGloss]にも記載されています。注:[ ]のかっこ内に示された語句および数字は、他の
168
文書を指しています。これらの参考文書の詳細については、6 章(この文書の最後)を参照
169
してください。本書は標準規定ではないため、RFC-2119 に準拠した「MUST (しなければな
170
らない)」、「MAY (することができる)」、「SHOULD (すべきである)」などのことばは使用し
171
ません。
172
173
1.2 Liberty Alliance とは
174
175
Liberty Alliance Project は、インターネット上での新しい水準の信頼、商取引、通信を推進す
176
るために結成された幅広い産業団体です。
177
178
1.2.1 Liberty のビジョン
179
180
Liberty Alliance のメンバーは、個人や企業が重要なアイデンティティ情報のプライバシーや
181
セキュリティを犠牲にすることなく、仮想的に取引に参加できるネットワーク化された世
182
界を描きます。
183
184
1.2.2 Liberty のミッション
185
186
Liberty Alliance では、ビジョンを実現するため、広範なネットワークアイデンティティベー
187
スのやりとりを支援し、企業に以下の機能を提供するオープンな技術仕様を策定します。
188
189
190
191
192
193
・顧客およびビジネスパートナーとの関係を経済面において強化する新しい収益機会
の基盤
・企業が顧客に対して、インターネットに接続されたデバイスを使用する場合の選択
肢、利便性、制御性を提供できるようなフレームワーク
194
1.3 ネットワークアイデンティティとは
195
196
ユーザーがインターネット上のサービスとやりとりする場合、一般に個人の用途に合わせ
197
てサービスをカスタマイズします。たとえば、ユーザーがユーザー名とパスワードを使用
198
してアカウントを作成し、ユーザーが何の情報を表示して欲しいか、どのように表示して
199
欲しいかの好みを設定する場合があります。各ユーザーのネットワークアイデンティティ
200
は、さまざまなアカウントを構成するこれらの属性のグローバルセットです(図 1 を参照)。
201
202
ネットワークアイデンティティとは
203
204
顧客名
Eメールアドレス
PIN
205
206
207
208
個人の様々なアカウン
トから構成されるグロ
ーバルセット
209
210
211
212
213
214
John Smith
[email protected]
[email protected]
クレジットカード番号
社会保障番号
運転免許証
パスポート
娯楽の嗜好
通知の嗜好
従業員認定
業務カレンダー
食事の嗜好
アフィニティプログラム
友人と同僚
学歴
金融資産
215
216
217
218
図 1:ネットワークアイデンティティは、ユーザーのアカウントから構成される属性のグローバルセット
219
である
220
現在、ユーザーのアカウントは、ばらばらなインターネットサイトに分散しています。そ
221
のため、ユーザーがまとまった明確なネットワークアイデンティティを持つという概念が
222
実現されていません。
223
224
1.3.1 Liberty の目標
225
226
Liberty Alliance は、以下の主な目標を掲げています。
227
228
229
230
231
232
233
234
・消費者がネットワークアイデンティティ情報のプライバシーとセキュリティを保護
できるようにする
・企業が第三者の介入を受けることなく、顧客との関係を維持し、管理できるように
する
・複数ベンダーからの分散型の認証と認可を行えるオープンなシングルサインオン規
格を提供する
・現行および新規のすべてのネットワークアクセスデバイスをサポートするネットワ
ークアイデンティティインフラを構築する
235
236
上記の機能は、第 1 に企業が Liberty 対応技術と企業間の信頼関係を定義した運用協定に基
237
づくトラストサークルに参加し、第 2 にユーザーがこれらの企業との間で設定した分散し
238
がちな(ローカルなアイデンティティとして知られる)アカウントを連携させることで達
239
成できます。言い換えると、トラストサークルとは、Liberty アーキテクチャと運用協定に
240
基づいた事業関係を持つためのサービスプロバイダ(SP)と IdP の連携のことで、これに
241
よりユーザーは安全かつシームレスな環境で取引を行うことができます。図 2 を参照して
242
ください。注:運用協定の定義は、Liberty Version 1.0 仕様の範囲に含まれていません。
連携ネットワークアイデンティティ
企業トラストサークル
名前: Joe Self
アイデンティティ
プロバイダ
(会社)
買掛金勘定
アプリケーション
サプライヤ サプライヤ サプライヤ
B
A
C
サプライチェーン
アグリゲーター
カレンダー
職場での
プロファイル
サービスプロバイダ
ニュース ニュース
情報源 情報源
名前: Joe Self
NI対応
小売店
アイデンティティ
プロバイダ
(例:銀行)
家での
プロファイル
NI対応
サービス
NIサービス
アグリゲーター
ニュース
情報源
友人と家族に
関する通知
サービスプロバイダ
243
消費者トラストサークル
244
245
246
図 2:連携ネットワークアイデンティティとトラストサークル
247
Liberty から見た場合、図 2 における中心的な関係者はユーザー、SP、および IdP です。
248
249
SP は、Web ベースのサービスをユーザーに提供する組織です。この広範な分類には、イン
250
ターネットポータル、小売店、輸送業者、金融機関、娯楽企業、非営利団体、政府機関な
251
ど、事実上 Web 上のあらゆる組織が含まれます。
252
253
IdP は、他の SP がこのサービスと連携するようにビジネスインセンティブを提供する SP で
254
す。そのような関係を確立することで、図 2 に示したトラストサークルが生み出されます。
255
たとえば、企業トラストサークルの場合、IdP は従業員のネットワークアイデンティティを
256
企業全体で活用する企業そのものとなります。他の例には、ユーザーの銀行が他のさまざ
257
まな SP と事業関係を構築し、ユーザーが銀行で利用するネットワークアイデンティティを
258
それらの SP で使用できるような消費者トラストサークルがあります。注:1 つの組織が全
259
てのまたは特定のやりとりで IdP と SP を兼ねる場合もあります。
260
261
これらのシナリオは、Liberty 対応製品をインフラとして運用する SP および IdP によって実
262
現されますが、ユーザーが現在使用している Web ブラウザ以外、特別なものを用意する必
263
要はありません。
264
2 Liberty Version 1.0 におけるユーザー体験の例
265
266
このセクションでは、ユーザーの視点から見た Liberty Version 1.0 におけるユーザー体験の 2
267
つの簡単な例を示し、セクション 5 で Liberty アーキテクチャの技術詳細を解説するための
268
全般的な前準備をします。そのため、実際の技術詳細は省略されているか、または簡略化
269
されています。
270
271
注:このセクションのユーザー体験の例は必須仕様ではなく、例を示す目的でのみ記載さ
272
れています。
273
274
以下のユーザー体験の例は、以下の関係者に基づきます。
275
276
・Joe Self
277
・Airline.inc
Web ベースのオンラインサービスのユーザー
278
279
280
パートナーの系列グループを運営する航空会社。Airline.inc が IdP と
なります。
・CarRental.inc
航空会社の系列グループのメンバーとなっているレンタカー会社。
CarRental.inc が SP となります。
281
282
Liberty Version 1.0 におけるユーザー体験には、主に以下の 2 つの側面があります。
283
284
・アイデンティティ連携
285
・シングルサインオン
286
287
アイデンティティ連携は、SP と IdP に分散されがちなユーザーのアカウントをリンクする
288
ことで行われます。このアカウントのリンク、つまりアイデンティティ連携は、Liberty
289
Version 1.0 におけるユーザー体験の他の側面の基盤をなし、それらの実現を可能にします。
290
291
全体的なポリシー/セキュリティに関する注:アイデンティティ連携は、必ず IdP と SP 間の事前の承
292
諾を前提とします。さらに、ユーザーに通知し、ユーザーの承諾を得て、それらの通知と承諾を監査
293
可能な形で記録することも前提となります。監査可能な通知と承諾の記録を用意することで、ユーザ
294
ーとプロバイダは、通知と承諾が行われたことを確認し、その承諾が特定の取引に限定して適用され
295
ることを記録できます。そのような記録によって、オンラインサービスにおける消費者の信頼が増し
296
ます。Liberty 対応技術の実装者および運用者は、通知とユーザーの承諾が、ユーザーとの Liberty 対
297
応のやりとりの中において、監査可能な形で適切に記録されていることを確実にしておかなければな
298
りません。
299
300
シングルサインオンを使用すると、ユーザーが IdP と SP の連携グループのメンバー(ある
301
いは、プロバイダから見た場合はトラストサークルのメンバー)に 1 度サインオンするだ
302
けで、再度サインオンすることなく、グループ内のさまざまな Web サイトを利用できるよ
303
うになります。
304
2.1 アイデンティティ連携のユーザー体験の例
305
306
通常、Liberty Version 1.0 におけるユーザー体験のアイデンティティ連携は、図 3 に示す通
307
り、Joe Self が Liberty 対応 IdP である Airline.inc の Web サイトにログインした時から始まり
308
ます。
309
310
注:Joe Self は意識していませんが、この場面の裏側では IdP が Joe Self のクレデンシャル
311
(この場合はユーザー名とパスワード)を使用して、アイデンティティを認証しています。
312
正常に完了すると、Joe Self が認証されたことになります。
Airline.inc
“Proud Home of the
Airline.inc Affinity Group”
ログイン:
JoeS
パスワード: xxxx
Airline.inc
JoeS: 認証済
ユーザー
313
(Joe Self)
314
図 3:ユーザーが Liberty 対応 Web サイトにログインする
315
Airline.inc.は、
(系列グループ内にトラストサークルを構築する他の IdP と同様に)系列グル
316
ープのメンバー間でローカルアイデンティティを連携できることを正規ユーザーに通知し、
317
そのようなイントロダクション(導入手続き)を進めるための許可を求めます。図 4 を参
318
照してください。
Airline.inc
“Proud Home of the
Airline.inc Affinity Group”
注:ご利用のAirline.incのアイデ
ンティティを系列グループのメン
バーで使用する他のアイデンティ
ティと連携させることができます。
Airline.inc
JoeS: 認証済
アイデンティティ連携:はい
このようなイントロダクションを
承諾しますか?
はい
サービスを選択してください。
ユーザー
319
320
(Joe Self)
図 4:ユーザーがアイデンティティ連携の通知を受け、イントロダクションの許可を選択する
321
322
ポリシー/セキュリティに関する注:図 4 は、ユーザーがイントロダクションを承諾した場合を示し
323
ています。イントロダクションは、SP がトラストサークル内のどの IdP がユーザーを認証したかを判
324
断するための手段です。注:図 4 では、ユーザーはアイデンティティをいかなる SP と連携させるこ
325
とも承諾していません。図 5 に示すとおり、アイデンティティ連携の承諾を求めることは別の手順と
326
なります。
327
328
イントロダクションの手順は、([LibertyBindProf]に記載されているとおり)IdP イントロダクション
329
プロファイル(Identity Provider Introduction Profile)経由で実行されるか、またはユーザーエージェン
330
トが Liberty 対応クライアントまたはプロキシであるなどの場合には仕様には規定されていない別の
331
手段で実行されるかもしれません。
332
333
その後数分から数時間が経過して、Joe Self は、CarRental.inc という Web サイトを運営する
334
CarRental, Inc.などの系列グループのメンバーの Web サイトを訪問したとします。実際、Joe
335
Self は元の Airline.inc Web サイトから張られた CarRental.inc Web サイトへのリンクをたどる
336
可能性もあります。どちらの場合も、CarRental.inc(Liberty 対応 SP)は、Joe Self がイント
337
ロダクションを許諾する選択をしたので、Joe Self が最近 Airline.inc Web サイトと対話操作
338
を行ったことを識別できます。
339
340
テクニカルノート:イントロダクションの実行に実際に使われる手段は、実行および配布の決定です。
341
1 つの可能な手段、IdP のイントロダクションプロファイルについては、[LibertyBindProf]に規定して
342
います。イントロダクションを進行させるために、ユーザーのログインが必要となる場合とそうでな
343
い場合があることに注意します。これは、使用されるイントロダクション技法によって異なります。
344
345
サービスプロバイダが、次の例のように、ローカルアカウントを維持している場合は、通
346
常、Joe Self のアクセス時にログインを要求し、Joe Self は、ローカルに保存された
347
CarRental.inc のアイデンティティを使用してログインします。図 5 を参照してください。
CarRental.inc
“Proud Member of the
Airline.inc Affinity Group”
CarRental.incのアイデンティティを使
用してログインしてください。
Airline.inc
JoeS: 認証済
アイデンティティ連携: はい
ログイン: Joe123
パスワード:xxxxxx
CarRental.inc
ユーザー
Joe123: 認証済
アイデンティティ連携: はい
(Joe Self)
348
349
図 5:ユーザーが SP のローカルアイデンティティを使用してサインオンする
350
CarRental.inc
“Proud Member of the
Airline.inc Affinity Group”
ようこそ
現在、あなたはAirline.inc Webサイトにサ
インオンしています。
CarRental.inc の ア イ デ ン テ ィ テ ィ を
Airline.incのアイデンティティと連携させ
ますか? はい
ユーザー
(Joe Self)
351
352
Airline.inc
JoeS: 認証済
アイデンティティ連携: はい
CarRental.inc
アイデンティティ連携: はい
Joe123: 認証済
図 6:ローカルアイデンティティの連携を確認後、
「はい」を選択
353
354
その後、Joe Self は、Airline.inc と CarRental.inc との間で彼のローカルアイデンティティを
355
連携させる機会を与えられます。図 7 を参照してください。
356
357
セキュリティ/ポリシーに関する注: SP がローカルでユーザーを認証する前後に、そのユーザーに対
358
してローカルアイデンティティ連携の同意を求めるかどうかは、ローカル配布ポリシーによります。
359
360
CarRental.inc. Web サイトへのログインの一環として、CarRental.inc.における Joe Self のロー
361
カルアイデンティティが Airline inc.における彼のローカルアイデンティティと連携されま
362
す。図 7 を参照してください。
CarRental.inc
“Proud Member of the
Airline.inc Affinity Group”
Airline.inc
JoeS: 認証済
アイデンティティ連携: はい
CarRental.inc
Joe123
Airline.incとCarRental.incのアイデ
ンティティを連携させています
(しばらくお待ちください)
................
ユーザー
(Joe Self)
363
364
CarRental.inc
Joe123:認証済
アイデンティティ連携: はい
Airline.inc
JoeS
図 7 :Web サイトがユーザーのローカルアイデンティティを連携
365
366
ログインとアイデンティティ連携操作が完了すると、Joe Self の CarRental.inc Web サイトへ
367
のログインが完了し、CarRental.inc から通常どおりサービスが提供されます。さらに、Joe Self
368
の SP(CarRental.inc)のローカルアイデンティティが IdP(Airline.inc)のローカルアイデン
369
ティティと連携されたため、Web サイトに新しい選択肢が表示されます。図 8 を参照して
370
ください。
371
372
テクニカルノート:一部の図はユーザー体験を表しています(例、図 7)。これらの図は、アイデン
373
ティティ連携の影響についてユーザーの視点から簡略化して図示したものです。実際には「JoeS」や
374
「Joe123」などの直接意味のある文字列の識別子が IdP と SP の間で交換されることはありません。む
375
しろ、特定困難なユーザーハンドルが交換されます。詳細については、5.4.1 を参照してください。
376
377
また、認証および連携またはそのいずれかの処理でエラーが発生した場合、SP はユーザーに適切な通
378
知を表示する必要があります。
CarRental.inc
“Proud Member of the
Airline.inc Affinity Group”
Joe123さん、ようこそ。あなたの
CarRental.incのアイデンティティ
はAirline.incのアイデンティティと
連携されています。
Airline.inc
JoeS:認証済
アイデンティティ連携:はい
CarRental.inc
Joe123
以下からサービスを選択してくだ
さい。
・車を予約する
・Airline.incのマイルを確認する
・その他
ユーザー
(Joe Self)
CarRental.inc
Joe123:認証済
アイデンティティ連携:はい
Airline.inc
JoeS
379
380
図 8:SP が通常どおりユーザーにサービスを提供する
381
382
ポリシー/セキュリティに関する注:アイデンティティ連携を提供するには、ビジネスの必要条件を満
383
たさなければなりません。2 つの必要条件は、連携についてユーザーに通知することと、イントロダ
384
クションの進行について承諾を求めることです。ほかに、アイデンティティの認識と相互認証の受け
385
入れに関するポリシーを確立するために、系列グループメンバー間で取り決めを作成することがあり
386
ます。
387
2.2 シングルサインオンのユーザー体験の例
388
389
シングルサインオンは、アイデンティティ連携に基づいて行われ、シンプルなユーザー体
390
験をもたらします。Joe Self は Airline.inc Web サイトにログインし、その後にアイデンティ
391
ティ連携を設定した CarRental.inc Web サイトを訪問します。Joe Self の Airline.inc Web サイ
392
トにおける認証状態は CarRental.inc Web サイトで相互に受け付けられ、 Joe Self は
393
CarRental.inc のサイトへも同じようにログインできます。図 9 および図 10 を参照してくだ
394
さい。
Airline.inc
Airline.inc
“Proud Home of the
Airline.inc Affinity Group”
ログイン :
JoeS
xxxx
パスワード:
JoeS: 認証済
アカウント連携: はい
CarRental.inc
Joe123
ユーザー
395
(Joe Self)
396
397
図 9: ロ ー カ ル ア イ デ ン テ ィ テ ィ を 使 用 し て ユ ー ザ ー が IdP の Web サ イ ト に ロ グ イ ン
CarRental.inc
“Proud Member of the
Airline.inc Affinity Group”
Joe123さん、ようこそ。サインオ
ンは完了しています。
以下からサービスを選択してくだ
さい。
・車を予約する
・Airline.incのマイルを確認する
・その他
ユーザー
(Joe Self)
Airline.inc
JoeS:認証済
アイデンティティ連携:はい
CarRental.inc
Joe123
CarRental.inc
Joe123:認証済
アイデンティティ連携:はい
Airline.inc
JoeS
398
399
図 10:ユーザーが SP の Web サイトに移動し、その認証状態を SP の Web サイトで相互に受け付ける
400
401
Joe Self が洞察力のある人であれば、CarRental.inc のセッションに表示される名前がローカ
402
ルアイデンティティを連携させた Airline.inc のローカルアイデンティティではなく、
403
CarRental.inc のローカルアイデンティティであることに気付きます。
404
405
テクニカルノート:ユーザーの実際のアカウント識別子は連携時に交換されないため、SP はユーザー
406
の IdP の識別子を表示できません。
407
408
また、多くの SP の Web サイトでは、ユーザーに応答する際に個人を特定可能な識別子を使用しない
409
場合があります。たとえば、スポーツイベントのスケジュールサイトのように、ユーザーが表示の好
410
みを指定できる、広告運営のサイトがあるとします。このようなサイトでは、
「(あなたの)希望の表
411
示方法を設定してください」、「(あなたの)興味のあるイベントの一覧です」など、ユーザーを単に
412
「あなた」と呼ぶことがあります。
413
414
セキュリティ/ポリシーに関する注:ユーザーがシングルサインオンメカニズムによって認証された場
415
合でも、ユーザーによる SP の Web サイト利用はローカルポリシーに従います。たとえば、サイトに
416
1 日の利用時間の制限がある場合、サイトがメンテナンスを実施中の場合、ユーザーと SP の関係が特
417
定の状態にある場合(たとえば、大切なユーザーに対しては特典ページを表示し、問題のある顧客に
418
は、未払いの料金を通知してアクセスを制限する)などがあります。
419
420
3 Liberty の技術要件の概要
421
422
このセクションでは、Liberty の一般的および機能的な技術要件について要約します。
423
424
3.1 全般的な要件
425
426
Liberty 対応システムは、3.1.1 および 3.1.2 に示された一般的な原則に従わなければなりませ
427
ん。これらの原則はすべての分野の機能に適用されます。
428
429
3.1.1 クライアントデバイス/ユーザーエージェントの相互運用性
430
431
Liberty Version 1.0 クライアントには、現在採用されている広範な Web ブラウザ、その他の
432
Web 対応クライアントアクセスデバイス、さらに新しく設計され、特定の Liberty 対応機能
433
を持つ Web 対応ブラウザやクライアントが含まれます。
434
435
Liberty Version 1.0 アーキテクチャおよびプロトコル仕様は、すべての Liberty Version 1.0 ク
436
ライアントに対して、基本的レベルの機能性をサポートしなければなりません。
437
438
439
3.1.2 オープン性に関する要件
440
441
Liberty アーキテクチャおよびプロトコル仕様では、以下の項目をできる限りサポートしな
442
ければなりません。
443
444
・オペレーティングシステム
445
・プログラム言語
446
・ネットワークインフラ
447
448
さらに、トラストサークルの境界を越える相互運用性など、Liberty クライアントおよびサ
449
ービス間のマルチベンダーによる相互運用性を妨げてはなりません。
450
451
3.2 機能に関する要件
452
453
Liberty アーキテクチャおよびプロトコルは、Liberty 対応の実装で以下の処理を実行できる
454
ように規定されなければなりません。
455
456
・アイデンティティ連携
457
・認証
458
・仮名の使用
459
・グローバルログアウト
460
461
3.2.1 アイデンティティ連携
462
463
アイデンティティ連携に関する要件には、以下の項目が明記されています。
464
465
・プロバイダは、アイデンティティ連携と解除について、ユーザーに通知する
466
・SP および IdP は、アイデンティティの連携解除を相互に通知する
467
・IdP は、IdP でのユーザーアカウントの終了を関係する SP に通知する
468
・SP および/または IdP は、IdP または SP におけるユーザーの連携アイデンティティの
469
一覧を各ユーザーに提供する
470
471
3.2.2 認証
472
473
認証に関する要件には、以下の項目が含まれます。
474
475
・ユーザー側で IdP と SP 間のサイトを変更する方法を提供すること。つまりユーザー
476
が A から B にサイトを変更する方法(クリック、お気に入りまたはブックマーク、URL
477
アドレスバーなど)をサポートしなければならない
478
・ユーザーがクレデンシャルや、他の個人識別情報を IdP に提供する前に、IdP の認証
479
済みアイデンティティをユーザーに与えること。
480
・認証とシングルサインオン処理時に、IdP および SP のアイデンティティを相互に認
481
証する時にはもちろん、IdP、SP、ユーザーエージェントの間で交換される情報の機密
482
性、完全性、真正性を保証すること。
483
・幅広い認証方法をサポートし、認証方法を特定し、認証方法を認証クラスにまとめ、
484
認証クラスを引用して交換できること。ただし、この情報を交換するためのプロトコ
485
ルは、Liberty Version 1.0 仕様の範囲に含まれていません。
486
・認証状態、認証方法、仮名など、ユーザーに関連する最低限の認証情報を交換する
487
・IdP で同じまたは異なる認証クラスを使用して、ユーザーを再認証できるよう要求す
488
る機能を SP に持たせること。ただし、IdP に対して、ユーザーが登録されている認証
489
クラスをプログラムによって交換する方法は、Liberty Version 1.0 仕様の範囲には含まれ
490
ていません。
491
492
3.2.3 仮名
493
494
Liberty 対応の実装では、すべての IdP および SP 間の ID 連携で一意な仮名の使用をサポー
495
トしなければなりません。
496
497
3.2.4 グローバルログアウト
498
499
Liberty 対応の実装では、ユーザーが IdP からログアウトした時点で SP に通知する機能をサ
500
ポートしなければなりません。
501
502
4 Liberty のセキュリティフレームワーク
503
504
表 1 に、Liberty 仕様、つまり Liberty 対応の実装に組み込まれるセキュリティメカニズムを
505
チャネルセキュリティとメッセージセキュリティという 2 つの観点からまとめます。また、
506
Liberty の実装で要求されるセキュリティに関する処理要件について要約します。注:この
507
セクションは標準を定義するのが目的ではないため、セキュリティメカニズムに関する標
508
準の説明については、[LibertyProtSchema]および[LibertyBindProf]を参照してください。
509
510
511
表 1 :Liberty のセキュリティメカニズム
セキュリティメカニズム
チャネルセキュリティ
メッセージセキュリティ(リ
クエスト、アサーション)
機密性
必要
任意
メッセージごとのデータ完
必要
必要
-
必要
IdP- 必要 SP - 任意
-
データ発信元の認証
-
必要
否認防止
-
必要
全性
トランザクションの完全性
ピアエンティティの認証
512
513
チャネルセキュリティでは、IdP、SP、ユーザーエージェント間の通信を保護する方法を取
514
り扱います。
Liberty の実装では、セキュリティ特性が TLS や SSL に相当するのであれば IPsec
515
などの他の通信セキュリティプロトコルが採用される可能性も残していますが、基本的に
516
はチャネルセキュリティには TLS1.0 または SSL3.0 を使用しなければなりません。注:TLS、
517
SSL、および同等のプロトコルでは、認証だけでなく、当事者間の通信の機密性と完全性が
518
保護されます。
519
520
チャネルセキュリティには、以下の重要点があります。
521
522
・認証に関しては、SP は IdP のサーバー側の証明書を使用して、IdP を認証する必要が
523
あります。また、IdP は、SP のクライアント側の証明書を使用して、SP の認証を要求
524
するオプションがあります。
525
526
・さらに、それぞれの SP は、認可された IdP の一覧を作成する必要があり、それぞれ
527
の IdP は、認可された SP の一覧を作成する必要があります。このようにして、SP と IdP
528
の組み合わせは、Liberty のやりとりを開始する前に、相互に認可されなければなりま
529
せん。このような認可は、認証に加えて行われます(注:この構成の形式は実装依存
530
の問題であり、たとえば、名前の一覧として、または他のトラストサークルのメンバ
531
ーの X.509 証明書のセットとして表示されます)。
532
533
・その IdP で認証されたアイデンティティは、ユーザーが個人認証データをその IdP に
534
提示する前に表示されなければなりません。
535
536
メッセージセキュリティでは、IdP、SP、ユーザーエージェント間で渡される個別の Liberty
537
プロトコルのメッセージに適用されるセキュリティメカニズムを取り扱います。これらの
538
メッセージは、上記でセキュリティ特性を説明した通信チャンネルで交換されます。
539
540
メッセージセキュリティには、以下の重要点があります。
541
542
・Liberty プロトコルのメッセージと一部コンポーネントは、一般的にデジタル署名さ
543
れ検証される必要があります。メッセージを署名し検証することで、データ完全性、
544
データ送信元の認証、および否認防止を提供できます。そのため、IdP および SP は、
545
TLS および SSL チャネル保護に適用される鍵の組み合わせとは異なり、長期の署名に
546
適した鍵の組み合わせを使用する必要があります。
547
548
セキュリティ/ポリシーに関する注:特に、[LibertyProtSchema]に定義されたシングルサインオン
549
および連携プロトコルの<AuthnRequest>メッセージは、IdP と SP 間の合意で指定されたとおり
550
に署名される場合とそうでない場合があり、プロバイダのメタデータの<AuthnRequestSigned>要
551
素によって示されます。Liberty アーキテクチャの範囲に含まれない手段でネットワークとシス
552
テムへのアクセスが管理/制御される企業ネットワークなどの場合は、このメッセージに署名し
553
ない方が妥当と考えられます。
554
555
・SP と IdP 間のトランザクションでは、リクエストが再実行されないことを保証し、
556
受信したレスポンスが発行されたリクエストと正しく対応するかどうかをチェックす
557
る必要があります。時間による有効期限の保証が行われる場合があります。これらの
558
技術によって、トランザクションの完全性が図られます。
559
560
トラストサークルのメンバーになるには、証明書発行機関の選択、X.509 クレデンシャルの
561
取得、信頼された公開鍵の作成および管理、対応するクレデンシャルの有効期間の管理に
562
関して各プロバイダが相互に合意する必要があります。
563
564
セキュリティ/ポリシーに関する注: SSL や TLS など、多くのセキュリティメカニズムは、DNS、タイム
565
サービス、ファイアウォールなどの他のネットワークサービスや機能に依存したり、相互にやりとりしな
566
がら機能したりします。これらのサービスやファシリティには、Liberty 対応システムが依存するそれぞれ
567
独自のセキュリティ検討項目があります。
568
569
5 Liberty アーキテクチャ
570
571
Liberty の全体的なアーキテクチャは、以下の 3 つの相互に関連するコンポーネントから構
572
成されます(図 11 を参照)。
573
574
・Web リダイレクト
575
・Web サービス
576
・メタデータとスキーマ
577
578
Web サービス
579
アーキテクチャのコンポーネント
580
581
582
Identity
Providers
メタデータとスキーマ
アーキテクチャのコンポーネント
Service
Providers
583
584
585
586
587
ユーザー
588
589
Web リダイレクト
590
591
アーキテクチャのコンポーネント
592
図 11: Liberty の全体的なアーキテクチャ
593
表 2 に、アーキテクチャの各コンポーネントの役割をまとめます。
594
595
表 2:Liberty アーキテクチャのコンポーネント
596
Web リダイレクト
既に導入されているユーザーエージェントに
よって Liberty 対応エンティティがサービスを
提供できるようにする操作
Web サービス
Liberty 対応エンティティが直接通信できるよ
うにするためのプロトコルのプロファイル
メタデータとスキーマ
さまざまなプロバイダ固有およびその他の情
報を伝えられるようにするために Liberty 対応
サイトで使用される一般的なメタデータとフ
ォーマットの組み合わせ
597
598
5.1 節から 5.3 節では、アーキテクチャの各コンポーネントについて説明します。5.4 節から
599
5.6 節ではアーキテクチャのコンポーネントを[LibertyProtSchema]および[LibertyBindProf]に
600
詳述されている具体的なプロトコルとプロファイルに関連付け、5.7 節ではユーザー体験の
601
例を示します。
602
603
5.1 Web リダイレクトのアーキテクチャコンポーネント
604
605
Web リダイレクトのアーキテクチャコンポーネントは、HTTP リダイレクトによるリダイレ
606
クトとフォーム POST によるリダイレクトの 2 種類があります。これらの 2 種類のリダイレ
607
クトでは、ユーザーエージェントを介して IdP と SP の間に通信チャネルが作成されます。
608
図 12 を参照してください。
609
610
611
Service
Provider
Identity
Provider
612
613
1.
2.
5.
3.
4.
614
615
616
ユーザーエージェント
617
618
619
図 12:ユーザーエージェントを経由する SP と IdP 間の Web リダイレクト
620
621
5.1.1 HTTP リダイレクトによるリダイレクト
622
623
HTTP リダイレクトによるリダイレクトは、HTTP プロトコルの HTTP リダイレクトクラス
624
の応答(リダイレクト)
([RFC2616]を参照)と、URI([RFC1738]および[RFC2396]を参照)
625
の文法を使用して、IdP と SP 間に通信チャネルを提供します。そのため、図 12 に示された
626
手順では、以下のように SP と IdP 間に通信チャネルが作成されます。
627
628
1. ユーザーエージェントが SP に HTTP リクエスト(通常は GET)を送信します。通
629
常はここでユーザーがユーザーエージェントに表示された Web ページのリンクをク
630
リックしています。
631
632
2. SP が状態コード 302(リダイレクト)の HTTP 応答を返し、Location ヘッダーフィー
633
ルドの URI を変更します。この例の場合、Location URI は IdP をポイントし、その
634
URI には SP をポイントするために埋め込まれた別の URI が含まれています。
635
636
3. ユーザーエージェントが IdP に HTTP リクエスト(通常は GET)を送信し、GET の
637
引数として手順 2 で返された応答の Location フィールドから取得した URI 全体を指
638
定します。注:この URI には、SP をポイントする 2 つ目の埋め込まれた URI が含ま
639
れます。
640
641
4. IdP が Location ヘッダーフィールドに(手順 3 で提供された GET 引数の URI から抽
642
出した)SP をポイントする URI を含むリダイレクトで応答し、自分自身をポイント
643
する 2 つ目の埋め込まれた URI を任意で含めます。
644
645
5. ユーザーエージェントが SP に HTTP リクエスト(通常は GET)を送信し、GET の
646
引数として手順 4 で返された応答の Location フィールドから取得した完全な URI を
647
指定します。注:この URI には、IdP をポイントする 2 つ目の埋め込まれた URI が
648
含まれる場合があります。
649
650
注:両方の URI が HTTP GET リクエストの引数として渡され、リダイレクト応答の Location
651
応答ヘッダーフィールドには埋め込み URI とその他の任意データのいずれかまたは両方を
652
含めることができます。そのため、IdP と SP は、このチャネルで比較的自由に任意の情報
653
を交換することができます。表 3 を参照してください。
654
655
表 3:HTTP リダイレクトへのパラメータの埋め込み
656
Location:http://www.foobar.com/auth
Location
http://www.foobar.com/auth?XYZ=1234
foobar.com にリダイレクトします。
:
foobar.com にリダイレクトして、パ
ラメータ"XYZ"の値として"1234"を
渡します。
657
658
5.1.2 フォーム POST によるリダイレクト
659
660
フォーム POST によるリダイレクトでは、図 12 の手順が以下のように変更されます。
661
662
2. SP がユーザーエージェントに対し、HTML フォームを返して応答します。この際
663
HTML フォームには IdP をポイントする action パラメータと POST 値を持つ method
664
パラメータが含まれます。他のフォームフィールドに任意のデータが含まれる場合
665
もあります。またフォームには、ユーザーの操作なしで次の手順を実行するような
666
JavaScript や ECMAscript フラグメントが含まれる場合もあります。
667
668
3. ユーザーが Submit ボタンをクリックするか、JavaScript または ECMAscript が実行さ
669
れます。どちらの場合も、フォームとその任意データの内容が HTTP POST メソッド
670
によって IdP に送信されます。
671
672
手順4、5では、フォーム POST による通信方向が逆になるように、IdP と SP の立場を入
673
れ替えることになります。
674
675
5.1.3 クッキー
676
677
ポリシー/セキュリティに関する注:特に個人識別情報と認証情報の片方または両方がクッキーに含ま
678
れる場合は、実装者および導入者のクッキー使用には十分な検討を行う必要があります。クッキーは、
679
短命(このセッションのみ)または永続的のいずれかになります。永続的なクッキーはディスクに書
680
き込まれ、ユーザーエージェントの呼び出しによって持続されるため、特に注意を要します。セッシ
681
ョンの認証トークンが永続的なクッキーにキャッシュされ、ユーザーがブラウザを終了した後、2 人
682
目のユーザーがシステムを使用してブラウザを再起動すると、(認証メカニズムによって課された認
683
証期限が切れていない場合)2 人目のユーザーが 1 人目のユーザーになりすますことができます。
684
685
さらに、永続的なクッキーは、ユーザーの承諾が得られた場合に限って使用されるべきです。この承
686
諾手順を踏むことで、たとえば公共のコンピュータを使用するユーザーが使用を終了した後もユーザ
687
ーエージェントのクッキーのキャッシュに残る永続的なクッキーを禁止できます。
688
689
5.1.3.1 なぜクッキーを一般的に使用しないのか
690
691
クッキーは、[RFC2965]に規定された HTTP 状態管理メカニズムであり、Web サーバーが情
692
報を保存する、つまりユーザーエージェントに状態を維持させるための手段です。ただし、
693
普及率の高いユーザーエージェントのデフォルトのセキュリティ設定では、書き込んだ Web
694
サイトだけがクッキーを読み込めるようになっています。この時のサイトの識別は、読み
695
込みと書き込みを行うサイトの DNS ドメインに基づいて行われます。
696
697
DNS ドメインの異なる複数の IdP および SP でクッキーを使用して通信できるようにするに
698
は、ユーザーがユーザーエージェントのデフォルトのセキュリティ設定を低く設定しなけ
699
ればなりません。このオプションは、たいてい受け入れられない条件となります。
700
701
また、ユーザーおよび/または組織にとって、ユーザーエージェントでクッキーをオフにす
702
ることは珍しくありません。
703
704
5.1.3.2 クッキーの使用場所
705
706
Liberty では、クッキーはローカルセッションの状態を保持するために使用され、イントロ
707
ダクションの問題に対応する際に使用されることがあります(5.5 を参照)。
708
709
IdP がクッキーを使用して SP にデータを任意で送信できないといっても、IdP と SP がロー
710
カルセッションの状態や、おそらく永続的な他の情報を保存するためにクッキーを書き込
711
めなくなるわけではありません。
712
713
5.1.4 Web リダイレクトのまとめ
714
715
Web リダイレクトは、理想的な分散システムアーキテクチャではありません。
716
717
ポリシー/セキュリティに関する注:5.1.1 から 5.1.3 で説明した Web リダイレクトチャンネルによる通
718
信には、十分に検証された多くのセキュリティの脆弱性が存在するため、Web リダイレクトを使用す
719
る プ ロ トコ ルを 設 計 する 際に は 注 意しながら検討する必要があります。そのような注意点は
720
[LibertyBindProf]に規定されたプロファイルの設計に組み入れられており、その文書の中で(平文での
721
転送やキャッシュの脆弱性などに関する)特定の注意点が必要に応じて参照されています。以下に、
722
セキュリティの脆弱性の例を挙げます。
723
724
・傍受:5.1.1 から 5.1.3 までのすべての手順を SSL または TLS セッション、あるいは IPsec を使
725
用する VPN などのセキュリティ保護されたその他の通信トランスポートで実行しない限り、こ
726
のような通信は平文で送受信されます。
727
728
・ユーザーエージェントの漏洩:チャンネルはユーザーエージェントを経由してリダイレクトさ
729
れるため、ユーザーエージェントに情報がキャッシュされ、後で漏れる可能性があります。伝達
730
された情報は平文でブラウザに保持されるため、セキュリティ保護されたトランスポートを使用
731
しても、このキャッシュが実行される可能性があります。そのため、この方法で機密情報を伝達
732
するには、チャネルで送信する前に暗号化する必要があります。
733
734
テクニカルノート:Web リダイレクトの主な制限は、GET リクエストの引数およびリダイレクトの
735
Location フィールドの値として渡された URI の全体のサイズです。この要素は、ブラウザによって異
736
なり、特に一部の携帯端末では特に小さいサイズ制限が存在します。これらの制限は、
737
[LibertyProtSchema]および[LibertyBindProf]に規定されたプロトコルの設計に組み込まれています。
738
739
Web リダイレクトには脆弱性と制限があるにもかかわらず、このメカニズムを使用すると、
740
インターネット上に展開されている HTTP インフラでシングルサインオンなどのドメイン
741
を越えた分散型のやりとりを実現できます。
742
743
Web リダイレクトのバリエーションは、シングルサインオン、アイデンティティ連携終了
744
通知、IdP イントロダクション、シングルログアウトなど、[LibertyBindProf]に規定されたい
745
くつかのプロファイルの基盤となっています。
746
747
5.2 Web サービスのアーキテクチャコンポーネント
748
749
さまざまな Liberty プロトコルのインタラクション手順は、Web リダイレクトで行われる他
750
の手順に加え、システムエンティティ間で直接実行され、SOAP で伝達される RPC に似た
751
プロトコルメッセージに基づきます([SOAP1.1]を参照)。SOAP は RPC に似た対話管理と
752
XML および HTTP を使用するメッセージ通信のために一般的に実装された仕様であり、こ
753
のアーキテクチャコンポーネントにもともと適しています。
754
755
5.3 メタデータとスキーマのアーキテクチャコンポーネント
756
757
メタデータとスキーマは、SP と IdP 間でプロトコルまたはプロトコル以外の方法で交換さ
758
れるさまざまな情報のサブクラスとそのフォーマット全般を示す包括的な用語です。交換
759
される情報のサブクラスは、以下のとおりです。
760
761
・アカウント/アイデンティティ:Liberty Version 1.0 でのアカウント/アイデンティティ
762
は、単に SP と IdP が通信時にユーザーを参照する際に使用する名前として機能する
763
特定困難なユーザーハンドルです。今後の Liberty フェーズで、さまざまな属性が含
764
まれる予定です。
765
766
・認証コンテキスト:Liberty は、IdP による任意の認証メカニズムおよび技術の使用に
767
明示的に適応します。さまざまな IdP が異なる技術を選択し、異なる手順に従い、ユ
768
ーザーの認証方法に関する異なる法的責任を負います。IdP が行う選択は、主に IdP
769
が連携する SP の要件によって決まります。これらの要件は、SP がユーザーに提供す
770
るサービスの性質(つまり、交換される情報の機密性、関連する金銭的価値、SP の
771
リスク許容度など)によって決められます。その結果、小規模なサービスを除いて
772
は、SP が IdP から受け取る認証アサーションを十分に信頼するには、SP は認証アサ
773
ーションの基盤となる元の認証メカニズムで使用されたり準拠したりする技術、プ
774
ロトコル、および手順を知っておく必要があります。認証コンテキストスキーマに
775
よ っ て 、 SP と IdP に そ の よ う な 情 報 を 伝 え る 手 段 が 提 供 さ れ ま す
776
([LibertyAuthnContext]を参照)。
777
778
・プロバイダのメタデータ:IdP および SP が相互に情報を伝えるには、各々に関する
779
メタデータを概念的に持っていなければなりません。これらのプロバイダのメタデ
780
ー タ に は 、 X.509 証 明 書 や サ ー ビ ス エ ン ド ポ イ ン ト な ど が 含 ま れ ま す 。
781
[LibertyProtSchema]には、プロバイダのメタデータ交換に使用される IdP と SP のメタ
782
データスキーマが定義されています。ただし、プロバイダのメタデータ交換プロト
783
コルは、Liberty Version 1.0 仕様の範囲に含まれていません。
784
785
5.4 シングルサインオンとアイデンティティ連携
786
787
Liberty のシングルサインオンとアイデンティティ連携については、[LibertyProtSchema]に規
788
定されたシングルサインオンおよび連携プロトコル(Single Sign-On and Federation Protocol)
789
によって進められます。一連のプロトコルの流れで、アイデンティティ連携(5.4.1 を参照)
790
およびシングルサインオン(5.4.2)の両方が進められます。[LibertyBindProf]で定義された
791
全体的なプロトコルの流れのさまざまなプロファイルについては、5.4.3 で説明しています。
792
793
5.4.1 アイデンティティ連携
794
795
ユーザーが IdP を初めて使用して SP にログインする場合には、シングルサインオンの中で
796
既存の情報を守るために、SP の既存のローカルアイデンティティを IdP のログインと連携
797
させることをオプションとして提供しなければなりません。図 13 を参照してください。複
798
数の IdP と SP が含まれるシステムでは、プロバイダ間において、ユーザーが(自分の判断
799
で)一意に識別されうるメカニズムが存在することが重要です。ただし、特定の IdP に結び
800
つかないようなグローバルに一意なアイデンティティを作成することは技術的に困難であ
801
り、グローバルに一意なアイデンティティの可搬性を確保することはビジネス上困難です。
802
803
804
805
806
807
808
Identity
Provider A
連携を開始
Joe123@IDP_A.com
Service
Provider A
JoeS@SP_A.com
図 13:ユーザーが 2 つのアイデンティティの連携を開始する
809
810
ユーザーが IdP を使用して初めて SP にログインした際にアイデンティティ連携を選択する
811
と、明示的な信頼関係、つまり連鎖が作成されます。複数のアイデンティティを相互に連
812
携できますが、それぞれのアイデンティティ間ごとにだけ明示的なリンクが存在します。
813
信頼の連鎖では、手順ごとにユーザーのアイデンティティ情報をチェックしなければなら
814
ないため、プロバイダが相互にスキップしてユーザーへの情報またはサービスを要求する
815
ことはできません。そのため、信頼の連鎖において 2 つの要素が情報をやりとりする場合
816
に、ユーザーを識別できることが唯一の要件となります。
817
818
トラストサークルのメンバーは、ユーザーに実際のアカウント識別子を提供する必要はな
819
く、その代わりにあるユーザーにハンドルを提供できます。メンバーは、特定のユーザー
820
に複数のハンドルを作成することもできます。ただし、IdP は、複数の Web サイトを持つ
821
SP がハンドルを Web サイト間で解決できるように、このような SP に対しては、1つのハ
822
ンドルを作成しなければなりません。
823
824
このような連携に含まれる IdP と SP は他のユーザーハンドルを記憶する必要があるため、
825
ユーザーディレクトリにエントリを相互に作成し、互いのユーザーハンドルを記録します。
826
図 14 および図 15 を参照してください。
827
828
Identity
Provider A
829
Service
Provider A
830
831
Joe123@ IDP_A.com
JoeS@SP_A.com
832
<alias="mr3tTJ340ImN2ED"
<alias="dTvIiRcMlpCqV6xX"
833
SecurityDomain="SP_A.com"
SecurityDomain=" IDP_A"
834
Name="dTvIiRcMlpCqV6xX"
Name="mr3tTJ340ImN2ED"
835
/>
/>
836
837
838
図 14:アイデンティティ連携における IdP および SP のユーザーディレクトリ
839
840
テクニカルノート:図 14 はそれに続く3枚の図とともに二者相互間のアイデンティティ連携、すな
841
わち SP と IdP の両者がユーザーのためにハンドルを交換することを説明しています。しかしながら、
842
二者相互間のハンドル交換は Liberty シングルサインオン連携プロトコルのオプショナルな機能です。
843
あるシナリオにおいては、IdP のハンドルのみが SP に伝達されます。このシナリオでは、SP が自身
844
のユーザーリポジトリを別途維持しない場合、典型的なケースとなるでしょう。
845
846
前述の図において IdP と SP を結ぶ直線は、通信のやりとりというよりはむしろ連携関係を表してい
847
ます。
848
849
850
Service
Provider A
851
852
853
854
855
Identity
Provider A
856
857
858
859
860
861
Joe123@ IDP_A.com
<alias="mr3tTJ340ImN2ED"
SecurityDomain="SP_A.com"
Name="dTvIiRcMlpCqV6xX"
/>
<alias="xyrVdS+xg0/pzSgx"
SecurityDomain="SP_B.com"
Name="pfk9uzUN9JcWmk4RF"
/>
JoeS@SP_A.com
<alias="dTvIiRcMlpCqV6xX"
SecurityDomain=" IDP_A"
Name="mr3tTJ340ImN2ED"
/>
Service
Provider B
JSch@SP_B.com
<alias="pfk9uzUN9JcWmk4RF"
SecurityDomain=" IDP_A.com"
Name="xyrVdS+xg0/pzSgx"
/>
862
863
図 15:アイデンティティ連携における IdP および複数の SP のユーザーディレクトリ
864
865
ポリシー/セキュリティに関する注:
866
867
1. 図 15 では、SP_A と SP_B が Joe Self に関する情報を直接伝えられません。これらの SP は、IdP と
868
個別に情報をやりとりすることしかできません。ポリシーとセキュリティの観点では、この機能は
869
妥当です。Joe Self が SP 間で自分の情報を交換できるように希望するならば、実際に選択して、2
870
つの SP のアイデンティティを明示的に連携させなければなりません。
871
872
この機能のもう 1 つの側面は、ユーザーのローカルアイデンティティがたとえば SP_A で危険にさ
873
らされても、IdP_A または SP_B のローカルアイデンティティは必ずしも危険にさらされない点で
874
す。
875
876
2. mr3tTJ340ImN2ED などのユーザーハンドル(名前識別子とも呼ばれます)のプロパティは、注意し
877
て取り扱う必要があります。特定困難にするだけでは十分とは言えません。名前識別子の作成に関
878
する注意点については、[LibProtSchema]に記載されています。また、ユーザーハンドルは定期的に
879
更新する必要があります。SP は、[LibertyBindProf]に定義された名前識別子登録プロファイルによ
880
って、IdP に任意で提供するユーザーハンドルを更新できます。Liberty Version 1.0 には、IdP によっ
881
て発行される名前識別の自動更新メカニズムについての規定はありません。
882
883
ユーザーはもちろん 1 つの IdP を使用して複数の SP にサインインできますが、さらに複数
884
の IdP を特定の SP にリンクすることもできます。図 16 を参照してください。この機能は、
885
職場のコンピュータから家庭のコンピュータに、あるいはコンピュータからモバイルデバ
886
イスに切り替える場合のような、ユーザーが別の IdP およびトラストサークルにそれぞれ関
887
連付けられている場合に便利です。
888
889
890
Identity
Provider A
891
892
893
894
Joe123@IDP_A.com
<alias="mr3tTJ340ImN2ED"
SecurityDomain="SP_A.com"
Name="dTvliRcMlpCqV6xX"
/>
Service
Provider A
895
896
897
898
899
900
901
Identity
Provider B
JoeS987@IDP_B.com
<alias="UIK34srW465AXKL"
SecurityDomain="SP_A"
Name="2df6ghUI46EcduM"
/>
JoeS@SP_A.com
<alias="dTvliRcMlpCqV6xX"
SecurityDomain="IDP_A"
Name="mr3tTJ340ImN2ED"
/>
<alias="2df6ghUI46EcduM"
SecurityDomain="IDP_B"
Name="UIK34srW465AXKL"
/>
902
903
図 16:SP と連携する 2 つの IdP を使用するユーザー
904
905
ポリシー/セキュリティに関する注:ここで、ユーザーがいかに簡単にアイデンティティを切り替えら
906
れ、この機能がどのように実現されるかについて、微妙な問題が発生します。IdP_A は、ユーザーの
907
複数のデバイスに結び付けられた同じトラストサークルに属するかもしれません。この場合、ユーザ
908
ーがどの(または両方の)IdP にログインしているかを知ればよいのかといった疑問が生じます。そ
909
のような疑問を満たす機能は、IdP とトラストサークルが自分自身を区別する方法です。
910
911
図 16 に示されるように、2 つの IdP を 1 つの SP に連携させると、ユーザーはどちらかの
912
IdP を使用して SP にログインできますが、新しい SP を両方の IdP に連携させなければな
913
らず、これが煩わしい手順となります。ユーザーにとっての代替策は、複数の IdP を連携
914
させ、IdP が相互の情報にアクセスできるようなポリシーを設定することです。図 17 とポ
915
リシー/セキュリティに関する注を参照してください。ユーザーは好みとする IdP を使用し
916
て SP にログインできますが、いつでも IdP を SP に追加することができます。
917
918
Identity
Provider A
919
920
921
922
923
924
925
926
927
928
929
930
Joe123@ IDP_A.com
<alias="mr3tTJ340ImN2ED"
SecurityDomain="SP_A.com"
Name="dTvIiRcMlpCqV6xX"
Service
Provider A
/>
<alias="2df6ghUI46EcduM"
SecurityDomain=" IDP_B"
Name="UIK34srW465AXKL"
JoeS@SP_A.com
/>
<alias="dTvIiRcMlpCqV6xX"
931
Identity
Provider B
932
933
JoeS987@ IDP_B.com
934
<alias="UIK34srW465AXKL"
935
SecurityDomain=" IDP_A"
936
Name="2df6ghUI46EcduM"
937
/>
SecurityDomain=" IDP_A"
Name="mr3tTJ340ImN2ED"
/>
<alias="2df6ghUI46EcduM"
SecurityDomain=" IDP_B"
Name="UIK34srW465AXKL"
/>
938
939
図 17:2 つの IdP を連携させたユーザー
940
941
テクニカルノート:図 17 において IdP A は SP・IdP の双方として動作します
942
943
ポリシー/セキュリティに関する注:
944
945
1. このような IdP 間の連携関係(図 17)の意味は、基盤となる Liberty プロトコルに規定されてい
946
ませんが、除外されているわけでもありません。これらの意味については、IdP 間の契約と、展開さ
947
れた Liberty 対応の実装の機能によって言及される必要があります。
948
949
2. 加えて、どのように IdP 間の信頼関係が確立され、SP に対しそれらの関係を伝えるかについては
950
規定されていません。IdP が図 17 に示すような関係を可能とするためには IdP が相互に管理ポリシ
951
ーを定義する必要があり、かつ、そのような信頼関係を(図 17 における SP A のような)信頼側の
952
SP に示す手段について定義しておく必要があります。
953
954
3.トラストサークルの合意の中で、連携の失敗をユーザーに提示する方法について言及すべきです。
955
956
957
4. 連携を実現するために、IdP と SP の間で交わされるアサーションの該当部分は記録に残すべきで
す。
958
959
5. SP および/または IdP に多くのローカルアイデンティティを作成して連携させると、ユーザーは、
960
シングルサインオンで多くの SP に認証するための基準として使用される多くのローカルクレデン
961
シャルを持つことになります。この状態はリスクを生みます。たとえば、ユーザー名とパスワード
962
などの繰り返し使用可能なユーザークレデンシャルを持つすべての IdP は、そのアカウントに連携
963
する SP でユーザーになりすますことができます。
964
965
通常の場合、ユーザーは他の IdP からシングルサインオンによってローカルアカウントを使用する
966
ため、一部のローカルクレデンシャルが一定期間中に使用されない可能性があります。そのため、
967
ユーザーのローカルクレデンシャルの増加を制御する手段として、アイデンティティ連携時と、そ
968
れらを使用せずに Web サイトを一定の回数訪問した後に、ユーザーにローカルクレデンシャルを
969
無効にするオプションを提供するなどが考えられます。
970
971
5.4.1.1 グローバルアカウント/アイデンティティ名前空間が不要
972
973
ユーザーがさまざまな IdP および SP でアイデンティティを連携させることを選択できる上
974
記のアーキテクチャがあれば、すべての関係者を網羅するグローバル名前空間は必要あり
975
ません。トラストサークルのメンバーは、ユーザーがローカルアイデンティティ間に特定
976
の連携を作成し、その連携にポリシーを設定した場合に限り、ユーザーに代わって相互に
977
情報を伝えることができます。IdP と SP の長い連鎖を作成することはできますが、ユーザ
978
ーのアイデンティティが連鎖内のそれぞれのリンクで連携されるため、連鎖のすべての要
979
素でそのユーザーのグローバルに一意なアイデンティティが存在する必要がなくなります。
980
図 17 を参照してください。
981
982
5.4.1.2 連携管理:連携の解除
983
984
ユーザーは、連携を終了、つまりアイデンティティ連携を解除することができます。
985
[LibertyProtSchema]および[LibertyBindProf]には、連携終了通知プロトコルと関連するプロフ
986
ァイルが規定されています。このプロトコルを使用して、SP が IdP との連携解除を開始し
987
たり、またはその逆を行うことができます。標準的なユーザー体験は、SP または IdP の Web
988
ページ上にある連携解除のリンクを選択することです。このリンクによって、他の特定の
989
IdP または SP に関する連携解除が開始されます。
990
991
IdP で連携解除が開始された場合、IdP はユーザーに代わって、IdP がユーザーアイデンティ
992
ティ情報を SP に提供できなくなり、SP の要求に応答できなくなったことを SP に伝えます。
993
994
SP で連携解除が開始された場合、SP はユーザーに代わって、今後、ユーザーアイデンティ
995
ティ情報を IdP から SP に提供しないよう、そして、今後 SP も IdP に何の要求もしないよ
996
う、ユーザーの指示があったことを IdP に伝えます。
997
998
999
ポリシー/セキュリティに関する注:連携解除に関して、いくつかの問題を検討しなければなりません。
1000
1001
1002
・ユーザーは、アイデンティティ連携の解除が開始されるプロバイダで認証を受ける必要があり
ます。
1003
1004
1005
・プロバイダは、連携の解除を実行する前にユーザーに確認を求め、イベントとユーザーの認証
情報の適切な部分を記録する必要があります。
1006
1007
・SP はある主体者の連携終了通知を開始したり受け取った後、連携終了通知を交換した IdP か
1008
らのアサーションに基づいて主体者が現在も SP にログインしているかどうかをチェックする
1009
ことが推奨されます。もしそうであれば、IdP のアサーションに基づくローカルセッション情
1010
報を無効にする必要があります。
1011
1012
・もし連携終了通知を交換した IdP からのアサーションに基づかない主体者のローカルセッショ
1013
ン状態の情報を SP が持っているのであれば、SP はその情報を引き続き保持することができま
1014
す。
1015
1016
1017
・もし主体者が引き続き同じ IdP とシングルサインオンセッションを開始したならば、SP は IdP
の認証と同様に連携をリクエストする必要があります。
1018
1019
・SP と IdP 間の契約における連携の失効と終了など、他の連携終了の手段も考えられます。
1020
1021
5.4.2 シングルサインオン
1022
1023
シングルサインオンは、ユーザーの IdP および SP のアイデンティティが連携されると有効
1024
になります。ユーザーから見ると、シングルサインオンは、ユーザーが IdP にログインし、
1025
再度サインオンすることなく提携する複数の SP を使用した場合に認識されます(図 18 を
1026
参照)。このような利便性は、該当する IdP と SP 間でユーザーのローカルアイデンティテ
1027
ィを連携することで得られます。5.4.1 に、基本的なシングルサインオンのユーザー体験を
1028
示します。
1029
1030
1031
Identity
Provider
Service
Provider
1032
1033
1034
2. SP がユーザーを認識
1. ユーザーがログイン
1035
1036
1037
ユーザーエージェント
1038
1039
1040
図 18:ユーザーが IdP にログインして、SP に認識される
1041
1042
[LibertyBindProf]には、SAML([SAMLBind]を参照)の「Browser/Artifact Profile」および
1043
「Browser/Post Profile」によるシングルサインオンが規定されています。
1044
1045
ポリシー/セキュリティに関する注:認証、シングルサインオン、クレデンシャルなどについて、いく
1046
つかの問題を検討する必要があります。
1047
1048
認証メカニズムはシングルサインオンと直交状態にある
1049
1050
シングルサインオンは、SP または IdP がユーザーが実際に認証されたことを別の SP または IdP に伝
1051
える手段です。ユーザーが最初に認証された手段は、認証メカニズムと呼ばれます。認証メカニズム
1052
の例には、ユーザー名とパスワード(HTTP 基本認証ではない)、証明書ベース(SSL や TLS など)、
1053
Kerberos があります。
1054
1055
IdP セッション状態のメンテナンス
1056
1057
IdP は主体者に対する認証状態情報を保持する必要があります。これは「ローカルセッション状態の
1058
保持」として知られ、ここでいう「ローカル」は「IdP にとってローカル」を意味します。Web ブラ
1059
ウザとして広く知られる HTTP ベース[RFC2616]のユーザーエージェントのコンテキストにおいて、
1060
ローカルセッション状態の保持を行うメカニズムはいくつか存在します。クッキーはそのメカニズム
1061
の1つで、[RFC2965]で規定されています。IdP はローカルセッション状態の情報をユーザーエージェ
1062
ントにマッピングし、IdP に対してシングルサインオン連携プロトコル[LibertyBindProf]を実行する SP
1063
に対し認証アサーションを発行するための土台とします。それに従い、主体者がユーザーエージェン
1064
トを使用し他の SP と対話したとき、その SP は IdP に対し<AuthnRequest>を送信します。IdP はその
1065
ユーザーエージェントにおけるローカルセッション状態の情報をチェックし、そのユーザーエージェ
1066
ントの IdP のセッションが現在でもアクティブであるとローカルセッション状態の情報が示している
1067
場合、SP に対して認証アサーションを含む<AuthnResponse>を返すこととなります。
1068
1069
クレデンシャル
1070
1071
クレデンシャルは、シングルサインオンシステムの様々な局面で信頼の源とされ、しばしばクレデン
1072
シャルが持ち主との信頼を確立するための基盤となります。クレデンシャルは、所有者のアイデンテ
1073
ィティなど、持ち主のセキュリティ関連の属性を表す場合があります。秘密暗号鍵などの特別な保護
1074
を必要とする機密なクレデンシャルは、権限のない漏洩から保護しなければなりません。一部のクレ
1075
デンシャルは、公開鍵の証明書のように共有されることを目的としています。
1076
1077
クレデンシャルは、アサーションを証明するために必要なデータの一般的な概念です。たとえば、パ
1078
スワードによる認証システムでは、ユーザー名とパスワードがクレデンシャルと見なされます。ただ
1079
し、クレデンシャルの使用は認証行為だけに限定されません。クレデンシャルは、認可の決定を行う
1080
際にも信頼されます。
1081
1082
上記のように、一部のクレデンシャルは機密にしなければなりません。ただし、一部のクレデンシャ
1083
ルは、機密にするだけでなく、整合性を保護して改ざんや偽造から保護しなければなりません。5.4.3.1
1084
で説明するアーティファクトのような他のクレデンシャルには、ノンスのプロパティを持たせる必要
1085
があります。ノンスは、通常はデータが動的に変化することを保証し、再実行攻撃を検出して防止す
1086
る目的で、プロトコルによって交換されたデータに含まれるランダムまたは繰り返し現れない値です。
1087
1088
認証タイプ、複数階層での認証
1089
1090
すべての認証アサーションは、クレデンシャルのクオリティを示す認証タイプと、それらを調べるた
1091
めのメカニズムを含んでいなければなりません。ユーザーの認証に使用されたり、トランザクション
1092
を認可するために提供されたりするクレデンシャルおよび/またはクレデンシャルを調べるための認
1093
証メカニズムは、トランザクションを完了させるだけの質を備えていない場合があります。
1094
1095
たとえば、ユーザーがユーザー名とパスワードを使用して IdP で認証を受けたとします。続いてユー
1096
ザーは、より強力な認証が必要な銀行預金の引き出しなどのトランザクションを実行しようとしたと
1097
します。この場合、ユーザーは、公開鍵証明書や誕生日や母方の旧姓といった補助的な情報など、よ
1098
り強力なアイデンティティのアサーションを示さなければなりません。この操作が再認証であり、全
1099
体的な機能は多層化された認証となります。多層化された認証を使用するかどうかは、SP におけるポ
1100
リシーの決定であり、SP の判断に委ねられます。あるいは、トラストサークルの契約上の取り決めの
1101
一部として確立される場合もあります。この場合、トラストサークルのメンバーは、さまざまな認証
1102
タイプや、相互の認証アサーションに対する信頼について契約を交わすことができます。そのような
1103
契 約 は 、 現 在 の 証 明 書 運 用 規 定 ( CPS ) の よ う な 形 態 に な り ま す ( た と え ば 、
1104
http://www.verisign.com/repository/cps20/cps20.pdf を参照)。このような文書には、以下の情報が含まれ
1105
ます。
1106
1107
・クレデンシャル登録時のユーザーの識別方法
1108
・クレデンシャルの更新頻度
1109
・クレデンシャルの保存および保護方法(スマートカード、電話、ハードディスクドライ
1110
ブ上の暗号化ファイルなど)
1111
1112
注:現在の Liberty 仕様では、SP、IdP、およびユーザーエージェントがさまざまな方法を使用す
1113
る認証をサポートできますが、関連するプロトコル交換は Liberty 文書に規定されていません。
1114
さらに、現在の Liberty 仕様には、IdP とユーザーエージェントとやりとりして、両者が共にサ
1115
ポートする方法を識別する手段が含まれていません。結果的に、Liberty 仕様のサポートは、そ
1116
れ自体で任意の方法を使用する任意の IdP とユーザーエージェント間の効率的な相互運用性を
1117
確保するほど十分ではないため、他のソースから入手したデータで補完しなければなりません。
1118
1119
また、現在の Liberty 仕様の範囲には、SP が IdP に質問する手段やユーザーが IdP に登録してい
1120
る認証プロファイルを決定するための手段が含まれていません。そのため、SP が特定のプロフ
1121
ァイルを効率的に選択して、特定のユーザーを認証するには、ユーザーの機能が記述された外の
1122
情報にアクセスする必要があります。
1123
1124
たとえば、トラストサークルのメンバーは、登録時に PKI 技術と、相応の文書を用いた面接によるユ
1125
ーザーアイデンティティ検証に基づく認証アサーションに、「強」のラベルを付けることに同意する
1126
場合があります。その後、これらのポリシーと手順を実装する IdP が指定された PKI ベースの認証メ
1127
カニズムを使用してユーザーがログインしたことを表明すると、SP がアサーションを一定の程度まで
1128
信頼します。この信頼の程度は、同じ PKI ベースの認証メカニズムを使用しながら、登録時に同じよ
1129
うな検査をユーザーに要求しない IdP がアサーションに含める程度とは異なってきます。
1130
1131
この問題には、誰が再認証を行うのか、あるいは IdP や SP がそれを実施するのかという側面もあり
1132
ます。この疑問は、実装および運用の問題であり、運用ポリシーの問題でもあります。実装および運
1133
用において、ビジネス上の要件(つまり運用ポリシー)に指定する場合に、IdP または SP で再認証を
1134
行うことをサポートする必要があります。たとえば、トラストサークルでは、特定の高額の取引で IdP
1135
が再認証を行うにはリスク要因が大きすぎ、取引のリスクを引き受ける SP が再認証を行うべきと判
1136
断される可能性があります。
1137
1138
相互認証
1139
1140
認証タイプと質の空間のもう 1 つの側面に、相互認証があります。IdP で認証を受けるユーザーにとって、
1141
相互認証は、IdP のサーバー自体がユーザーを認証し、またその逆を行うことを意味します。相互認証は、
1142
特定の認証メカニズムの機能です。たとえば、SSL または TLS ではデフォルトでサーバーがクライアント
1143
に対して認証されるため、SSL または TLS で実行されるユーザー認証は相互認証です。この機能は、ある
1144
程度の保証の基盤になりますが、いくつかの脆弱性を含んでいます。サーバーが偽の証明書を使用する可
1145
能性や、ユーザーが適切に検査したり重要性を理解することができない可能性があります。
1146
有効性の検証
1147
1148
有効性は、時刻 t0 に認証を受けたユーザーが時刻 t1 に一定の操作を実行しようとするユーザーと同
1149
じかどうかに関連します。たとえば、ユーザーがログインしてさまざまな操作を実行し、SP が高額と
1150
判断する一定の操作を実行しようとするかもしれません。SP は再認証を開始して、システムを操作し
1151
ているユーザーが最初に認証したユーザーと同じかどうかを検証しようとします。そのような手法に
1152
は多くの脆弱性が存在する、つまり悪意のあるユーザーの場合は完全に失敗するとしても、少なくと
1153
も SP の監査証跡は増加します。そのため、少なくとも一部の SP はこれを実施することを要望します。
1154
1155
IdP からの認証アサーションには、<ReauthenticationOnOrAfter>要素が含まれます。この属性が指定さ
1156
れ、ユーザーの要求時刻が指定された再認証の時刻を過ぎている場合、SP は再認証のためにユーザー
1157
を IdP にリダイレクトする必要があります。
1158
1159
通信セキュリティ
1160
1161
SP は、さまざまな理由で IdP との通信を拒否することができます。たとえば、SP のポリシーとして、
1162
クレデンシャルの持ち主とのあらゆるプロトコル交換を双方向の認証、完全性の保護、メッセージの
1163
機密性などの一定の質を満たす通信プロトコルで開始することを要求する場合があります。
1164
1165
1166
5.4.3 シングルサインオンおよび連携プロトコルのプロファイル
1167
[LibertyProtSchema]に規定されたシングルサインオンおよび連携プロトコルには、SP と IdP
1168
間で交換されるメッセージが定義されています。これらのメッセージの特定の転送(HTTP
1169
など)とメッセージ(SOAP)プロトコルへの具体的なマッピングと、正確なプロトコルフ
1170
ローは、[LibertyBindProf]に規定されています。これらのマッピングは、プロファイルと呼
1171
ばれます。シングルサインオンおよび連携プロトコルには、4つのプロファイルが規定さ
1172
れています。以下の節に、それぞれのプロファイルをまとめます。これらのプロファイル
1173
に共通するやりとりとプロファイルの処理ルールに関する議論と、各プロファイルの詳細
1174
については、[LibertyBindProf]を参照してください。
1175
1176
テクニカルノート:シングルサインオンおよび連携プロトコルと関連するプロファイルには、SP が採
1177
用したい特定のプロファイルを IdP に示す手段が規定されています。主な手段は、シングルサインオ
1178
ンおよび連携プロトコルのすべてのプロファイルで採用される<lib:AuthnRequest>メッセージの
1179
<lib:ProtocolProfile>要素です。注:Liberty 対応クライアントおよびプロキシのプロファイルでは、別
1180
の手段も採用されます。
1181
1182
5.4.3.1 Liberty ブラウザのアーティファクトプロファイル
1183
1184
Liberty ブラウザのアーティファクトプロファイルでは、Web リダイレクトによって
1185
IdP と SP 間で交換される URI へのアーティファクトの埋め込みが規定され、さらに SP と
1186
IdP 間の直接通信が必要となります。アーティファクト自体は、SP が IdP に照会して完全な
1187
SAML アサーションを受け取ることのできる特定困難なユーザーハンドルです。この方式
1188
の目的は、アーティファクトが URI エンコードされたフォーム内で小さくなるため、サイ
1189
ズ制限を心配することなく URI に適合することです。アーティファクトには、一度しか使
1190
用されない不透明かつ擬似的にランダムなノンスのプロパティがあります。これらのプロ
1191
パティは、再実行攻撃への対応策です。ランダムなプロパティのため、アーティファクト
1192
が敵から推測されなくなります。
1193
1194
5.4.3.2 Liberty ブラウザの POST プロファイル
1195
1196
JavaScript や ECMAscript をサポートする最近のブラウザは、自動的にフォームをポストす
1197
る JavaScript や ECMAscript データを含むフォーム要素のある HTML ページを送信して、リ
1198
ダイレクトを実行できます。古いブラウザや、スクリプトを無効にしたブラウザでは、URI
1199
内にデータを埋め込む必要があります。
1200
1201
Liberty ブラウザの POST プロファイルは、フォーム POST によるリダイレクト(5.1.2 を参照)
1202
ごとに HTTP フォーム内にアサーションを埋め込みます。その結果、このプロファイルでは、ア
1203
サーションを取得するために SP と IdP 間で直接通信する必要がありません。HTML フォームを
1204
使用することで、URL に比べて、サイズ制限が大きくなるため、完全な認証アサーションを含
1205
めることができます。図 19 を参照してください。
1206
1207
<HTML>
1208
<BODY ONLOAD="javascript:document.forms[0].submit()">
1209
<FORM METHOD="POST" ACTION="www.foobar.com/auth">
1210
<INPUT TYPE="HIDDEN" NAME="FOO" VALUE="1234"/>
1211
</FORM>
1212
</BODY>
1213
</HTML>
1214
1215
図 19:JavaScript を使用した非表示フィールドを含む HTML フォームの自動送信の
1216
例
1217
1218
テクニカルノート:JavaScript(または ECMAscript)への依存性のため、Liberty ブラウザの POST プ
1219
ロファイルは、Liberty ブラウザのアーティファクトプロファイルを補う意味でのみサポートします。
1220
1221
ポリシー/セキュリティに関する注:実装者および運用者は、認証アサーションの該当する部分を記録
1222
する必要があります。
1223
1224
5.4.3.3 Liberty WML の POST プロファイル
1225
1226
Liberty WML の POST プロファイルは、WML イベントに依存して、WML ブラウザに HTTP
1227
フォームの送信を命令します。WML ブラウザは、携帯端末で一般的です。そのような携帯
1228
端末のブラウザは、専用のプロキシである WAP ゲートウェイを経由して通信します。この
1229
プロキシは、端末のワイヤレスセッションプロトコル(Wireless Session Protocol)を HTTP
1230
に変換します。注:SP および IdP は、HTTP のみを使用して情報をやりとりします。
1231
1232
テクニカルノート:このプロファイルと Liberty ブラウザの POST プロファイルの主な違いは、SP お
1233
よび IdP からユーザーエージェントへの特定の応答に、HTML ではなく WML が含まれることです。
1234
1235
このプロファイルと Liberty 対応のクライアントやプロキシプロファイルの違いは、このプロファイ
1236
ルが標準的な無修正の WML ブラウザに対応するように設計されている一方で、Liberty 対応クライア
1237
ントおよびプロキシのプロファイルが Liberty プロトコルの機能を組み込んだブラウザおよび/または
1238
プロキシを想定していることです。
1239
1240
5.4.3.4 Liberty 対応クライアントおよびプロキシのプロファイル
1241
1242
Liberty 対応クライアントおよびプロキシのプロファイルでは、Liberty 対応クライアントお
1243
よび/またはプロキシ、SP、IdP 間のやりとりが規定されます。Liberty 対応クライアントは、
1244
ユーザーが SP で使用する IdP を認識しているか、または認識する方法を知っているクライ
1245
アントです。また、Liberty 対応クライアントは、HTTP リダイレクトに依存したり、URL
1246
にプロトコルパラメータをエンコードしたりするのではなく、POST を使用して HTTP リク
1247
エストおよび応答の本体で Liberty メッセージを送受信します。そのため、Liberty 対応クラ
1248
イアントには、Liberty プロトコルメッセージのサイズ制限がありません。
1249
1250
Liberty 対応プロキシは、Liberty 対応クライアントをエミュレートする HTTP プロキシ(通
1251
常は WAP ゲートウェイ)です。
1252
1253
テクニカルノート:このプロファイルと他の Liberty POST によるプロファイルの違いは、以下のとお
1254
りです。
1255
・HTTP リダイレクトに依存しません。
1256
・ユーザーエージェントと IdP 間のやりとりが SOAP ベースです。
1257
・Liberty 対応クライアントおよびプロキシのプロファイルには、IdP と SP に Liberty 対応である
1258
ことを知らせ、Liberty に対応しない一般のユーザーエージェントでサポートされない機能も
1259
サポートできることを伝えるために、送信されるプロトコルメッセージに Liberty で規定した
1260
HTTP ヘッダーを含みます。
1261
1262
1263
5.4.3.5 シングルサインオンプロトコルのフローの例:Liberty ブラウザのアー
ティファクトプロファイル
1264
1265
Liberty ブラウザのアーティファクトプロファイルにおけるシングルサインオンの第 1 段階
1266
は、ユーザーが SP を訪問して、ユーザーの好みの IdP を選択してログインすることです。
1267
このログインは、SP のログインページに表示される一覧から好みの IdP を選択することで
1268
実行されます。
1269
1270
テクニカルノート:SP は、5.5 節で説明する IdP イントロダクションメカニズムや、
1271
Liberty 対応クライアントまたはプロキシがあれば、実装依存の手段および仕様で規定
1272
されていない手段で、好みの IdP を検出しても良い。
1273
1274
ユーザーが IdP を選択すると、発信元の SP を示すパラメータが埋め込まれた状態で、ユー
1275
ザーのブラウザが IdP にリダイレクトされます。ユーザーは、通常どおりの方法で IdP にロ
1276
グインできます。図 20 を参照してください。
1277
1278
1279
Identity
Provider
Service
Provider
2. SP が IdP に対する HTTP
1280
リダイレクトまたはフォー
1281
1282
3. ユーザーが IdP にリダイレクト
1283
され、ログインする
ム Post を使用する
1. ユーザーがログインオプションとして
IdP を選択する
1284
1285
1286
ユーザー
1287
1288
図 20:HTTP リダイレクトまたはフォーム POST を使用したシングルサインオン(1/2)
1289
1290
IdP は通常どおりログインを処理し、ログインが完了すると、アーティファクトと呼ばれる
1291
暗号化された一時的なクレデンシャルを URI に埋め込んで、ユーザーのブラウザを発信元
1292
の SP にリダイレクトします。SP は URI のアーティファクトを解析し、直接使用して、IdP
1293
にユーザーを照会します。応答で IdP がユーザーを保証し、SP がローカルな意味でのセッ
1294
ションの状態を確立します。図 21 を参照してください。
1295
1296
7. SP が IdP にユーザーを照会する
1297
1298
Identity
Provider
1299
1300
1301
Service
Provider
4. IdP がログインを処理する
1302
1303
1304
5. IdP が URL または Post にクレデ
1305
ンシャルを埋め込んで、SP にリダ
1306
イレクトする
6. SP が HTTP リダイレクトを受け取
り、URL または Post からクレデンシ
ユーザー
ャルを解析する
1307
1308
1309
図 21:HTTP リダイレクトまたはフォーム POST を使用したシングルサインオン(2/2)
1310
1311
5.5 IdP イントロダクション
1312
1313
複数の IdP が存在するトラストサークルでは、ユーザーがどの IdP を使用しているかを SP
1314
が確認するための手段が必要となります。本来は、SP が読み取れるクッキーを IdP が書き
1315
込めることが理想的です。しかし、クッキーには 5.1.3 で説明した制約が存在するため、あ
1316
る DNS ドメインの IdP が別の DNS ドメインの SP で読み取り可能なクッキーを書き込むた
1317
めの標準的な手段がありません。
1318
1319
このイントロダクションの問題の解決策は、AirlineAffinityGroup.inc や AAG.inc のような、
1320
該当するトラストサークルに共通するドメインを使用して、すべての参加者がアクセスで
1321
きるようにすることです。この DNS ドメイン内のエントリは、系列グループのそれぞれの
1322
メンバーが指定する IP アドレスをポイントします。たとえば、SP である CarRental.inc は、
1323
自身の指定する IP アドレスをポイントするサードレベルドメインの「CarRental.AAG.inc」
1324
を取得します。この共通ドメインサービスをホスティングするコンピュータは、状態を保
1325
持しません。それらは、リダイレクト URL 内で渡されるパラメータに基づいて、クッキー
1326
の読み取りと書き込みだけを行います。これは[LibertyBindProf]3.6.2 において、共通クッキ
1327
ーの設定方法として提案されているいくつかの手法のうちの1つです。
1328
1329
ユーザーが IdP に認証を行うと、IdP はユーザーがその IdP を使用していることを示すパラ
1330
メータを付けて、ユーザーのブラウザを IdP の共通ドメインサービスのインスタンスにリダ
1331
イレクトします。共通ドメインサービスは、クッキーにその設定を書き込み、ユーザーの
1332
ブラウザを再び IdP にリダイレクトします。その後、ユーザーはトラストサークル内の SP
1333
にサイトを変更することができます。図 22 を参照してください。
1334
1335
「AAG」...「AirlineAffinityGroup」
1336
1337
Identity
1338
Provider
1339
Airline.inc
1340
Airline.AAG.inc
Service
Provider
CarRental.inc
CarRental.AAG.inc
2. 共通ドメインサー
ビスがクッキーを書
1341
1. ユーザーが IdP にログイ
1342
ンし、IdP がユーザーエージ
3. ユーザーが SP
1343
ェントを共通ドメインにリ
にサイトを変更す
1344
ダイレクトする
る
1345
1346
き込む
ユーザーエージェント
図 22:共通ドメインを利用したイントロダクションの推進(1/2)
1347
1348
ユーザーがトラストサークル内の SP にサイトを変更すると、SP はユーザーのブラウザを共
1349
通ドメインサービスのインスタンスにリダイレクトします。共通ドメインサービスがクッ
1350
キーを読み取って、ユーザーの IdP を URL に埋め込んだ状態でユーザーのブラウザを再び
1351
SP にリダイレクトし、そして SP の DNS ドメイン内で SP のシステムが稼働できるように
1352
なります。図 23 を参照してください。
1353
1354
「AAG」...「AirlineAffinityGroup」
1355
Airline.AAG.inc
Service
1356
Identity
Provider
1357
Provider
CarRental.inc
1358
Airline.inc
1359
1360
1361
1362
1363
CarRental.AAG.inc
4. SP が共通ドメインサービスにリダイレク
5. 共通ドメインサービスが URL に
トし、共通ドメインサービスがクッキーから
IdP の一覧を埋め込み、ユーザーエー
IdP の一覧を読み取る
ジェントを再度 SP にリダイレクトす
る
1364
1365
ユーザーエージェント
6. SP が、その IdP を経由してログインす
1366
るかどうかを確認する画面をユーザーに
1367
表示する
1368
1369
図 23:共通ドメインを利用したイントロダクションの推進(2/2)
1370
1371
1372
この時点で、SP はユーザーがトラストサークル内のどの IdP に認証を行ったかを把握し、
1373
ユーザーの代理を務めるその IdP と共に、シングルサインオンなどの Liberty プロトコルの
1374
運用を進めることができます。
1375
1376
ポリシー/セキュリティに関する注:
1377
1378
共通ドメインクッキーの影響
1379
1380
IdP は、セッションごとの共通ドメインクッキー(たとえば、そのセッション限定のもの、実際には
1381
非常に持続期間が短いもの、[RFC2965]を参照)または永続的な共通ドメインクッキーのどちらかを
1382
生成します。セッションクッキーとは、ユーザーがログアウトするか(このログアウトは明示的に実
1383
装されるべきであるけれども)、またはユーザーエージェントを終了すると、ユーザーエージェント
1384
のクッキーキャッシュから消去されるものを指します。一部のユーザーにとって、この機能は不便で
1385
す。ただし、セッションクッキーと永続的なクッキーのどちらを使用するかは、「保存しますか」と
1386
いうチェックボックスの形式で IdP へのログイン時にユーザーに表示されます。チェックしない場合
1387
はセッションクッキーが使用され、チェックすると永続的なクッキーが使用されます。
1388
1389
ユーザーのセキュリティ面における永続的なクッキーの影響は、別のユーザーがそのコンピュータを
1390
使用すると、すでにユーザーエージェントが終了されていても永続的な共通ドメインクッキーが残る
1391
ことです。実際、すべての永続的なクッキーが残ります。5.1.3.のポリシー/セキュリティに関する注
1392
を参照してください。
1393
1394
しかし、共通ドメインクッキーに含まれる情報が IdP の一覧だけであれば、つまり個人識別情報や認
1395
証情報が含まれなければ、ユーザーの不注意で情報が漏洩するセキュリティリスクは低く抑えられま
1396
す。
1397
1398
共通ドメインクッキーの取り扱い
1399
1400
共通ドメインクッキーの書き込みサービスで共通ドメインクッキーを取り扱う方法は、
1401
[LibertyBindProf]の 3.6.2 に規定されています。ユーザーが最近に認証した IdP は、クッキーの IdP 一
1402
覧の最後に記載されます。ただし、SP が共通ドメインクッキーを解釈し、ユーザーに選択肢を表示す
1403
る方法については規定されていません。これが指定されていないため、各 SP がさまざまな方法で表
1404
示する可能性があります。1 つには、共通ドメインクッキーと逆の順序で IdP の一覧を表示する方法
1405
があります。この方法では、共通ドメインクッキーの書き込みサービスが上記のガイドラインに準拠
1406
している場合、SP は最近使用された順に IdP を表示します。または、一覧の最後に記載された IdP だ
1407
けを表示します。あるいは、何らかの理由から、別の順序で IdP を表示します。
1408
1409
5.6 シングルログアウト
1410
1411
シングルログアウトプロトコルおよび関連するプロファイルは、特定の IdP によって認証さ
1412
れたすべてのセッションでセッションのログアウト機能と同期します。シングルログアウ
1413
トは、IdP(図 24 を参照)または SP(図 25 を参照)のいずれかで開始されます。どちらの
1414
場合でも、IdP はその後、ユーザーのためにセッションを確立したそれぞれの SP にログア
1415
ウトを通知します。
1416
1417
ポリシー/セキュリティに関する注:シングルサインオンシステムを採用する場合、ユーザーが SP で
1418
ログアウトする際に、IdP からログアウトするのか、あるいはその SP だけからログアウトするのかに
1419
ついて、ユーザーが予測できるようにすることが重要です。Web サイトにはシングルログアウトおよ
1420
びサイトログアウトの両方のボタンまたはリンクを表示して、ユーザーが予測できるようにしなけれ
1421
ばなりません。ただし、サイトログアウトは、ユーザーが以前にシングルサインオンに関連付けたサ
1422
イトで現在の認証アサーションを使用するような積極的な行動をとる必要がある場合にだけ役に立
1423
つものと考えられます。
1424
1425
2. IdP が SP A からユーザーをログアウト
3. IdP が SP B からユーザーをログアウト
1426
1427
1428
1429
Service
Provider A
Identity
Provider
Service
Provider B
1430
1431
1432
1433
1434
1435
1. ユーザーがログアウト
1436
1437
1438
1439
ユーザー
1440
1441
1442
1443
図 24: IdP からのシングルログアウト
1444
1445
1446
1447
2. SP A が IdP にユーザーの
3. IdP が SP B からユーザーを
ログアウトを通知
ログアウト
1448
1449
1450
Service
Provider A
Identity
Provider
Service
Provider B
1451
1452
1453
1454
1455
1456
1457
1458
1. ユーザーがグローバルに
1459
ログアウト
1460
1461
ユーザー
1462
1463
1464
図 25:SP からのシングルログアウト
1465
1466
5.6.1 シングルログアウトのプロファイル
1467
1468
[LibertyBindProf]には、SP と IdP 間でログアウトを通知するための以下の 3 つの全般的なプ
1469
ロファイルが指定されています。
1470
1471
・HTTP リダイレクトによるもの:HTTP 302 リダイレクトの使用に依存
1472
・HTTP GET によるもの:IMG タグの HTTP GET リクエストの使用に依存
1473
・SOAP/HTTP によるもの:HTTP メッセージによる非同期 SOAP に依存
1474
1475
IdP では、これらの 3 つのプロファイルすべてが開始されます。SP では、1 つ目および 3 つ
1476
目だけが開始されます。詳細については、[LibertyBindProf]を参照してください。
1477
1478
テクニカルノート:ユーザーが認識できるログアウトプロファイルの大きな違いは、HTTP リダイレ
1479
クトおよび SOAP/HTTP によるプロファイルを使用した場合には、ログアウトプロセスが実行される
1480
とユーザーがログアウトプロセスを開始した時の Web ページがそのまま表示され続ける(すなわち各
1481
SP に順番にログアウトが通知されている)のに対し、HTTP-GET によるプロファイルを使用した場合
1482
には、IdP がログアウト処理の進行に合わせて(SP ごとに1つの完了チェックマークなどのように)
1483
画像をリロードすることでユーザーに進捗を報告することもできることです。
1484
1485
5.7 ユーザー体験のシナリオ例
1486
1487
この節では、Liberty Version 1.0 アーキテクチャの連携、イントロダクション、およびシング
1488
ルサインオンの側面に基づき、いくつかのユーザー体験のシナリオ例を紹介します。目的
1489
は、ログイン時のユーザー体験のより微妙な側面を明らかにし、ユーザーのクレデンシャ
1490
ルを要求、収集する際に使用される可能性がある共通の Web 専用のユーザーインターフェ
1491
ース技術について説明することです。特有のポリシーおよびセキュリティ要素に注意して
1492
ください。
1493
1494
5.7.1 シナリオ:いずれにもログインしていない、共通ドメインクッキーなし
1495
1496
このシナリオでは、Joe Self はいずれの Web サイトにもログインしていなく、共通ドメイン
1497
クッキーも持たない(たとえば、ユーザーエージェントを再起動したり、クッキーのキャ
1498
ッシュを消去した)状態で、最初に IdP の Airline.inc を訪問せずに CarRental.inc に接続して
1499
います。
http://www.CarRental.inc/
CarRental.inc
“Proud Member of the
Airline.inc Affinity Group”
ようこそ。まずログインしてくだ
さい。当社のIdPの一覧は以下のと
おりです。
• Airline.inc
• CarRental.inc
• Hotel.inc
• Bank.inc
ユーザー
CarRental.inc
(Joe Self)
1500
1501
図 26:認証を受けた証拠や共通ドメインクッキーを持たずに、ユーザーが SP の Web サイトを訪問する
1502
1503
CarRental.inc が、IdP の選択肢を記載した Welcome ページを Joe Self に表示します(図 26 を
1504
参照)。Joe Self が、リストから Airline.inc を選択します。
1505
1506
5.7.1.1 から 5.7.1.3 までの節では、CarRental.inc が Airline.inc と共同で Joe Self のログインを
1507
進めるために使用する以下の 3 種類の Web 特有のユーザーインターフェース技術について
1508
説明します。
1509
1510
・IdP の Web サイトへのリダイレクト
1511
・IdP のダイアログボックス
1512
・埋め込まれたフォーム
1513
1514
テクニカルノート:これらのユーザーインターフェース技術は、Web を使用したシステムに一般的に
1515
採用されています。Liberty に固有ではなく、Liberty が指定するものでもありません。これらは、例を
1516
示す目的でのみ記載されています。
1517
1518
5.7.1.1 IdP の Web サイトへのリダイレクトによるログイン
1519
1520
IdP の Web サイトへのリダイレクトによるログインの場合、SP は(大部分の場合はリダイ
1521
レクトによって)IdP の適切なログインページへ直接リンクします。Joe Self のブラウザに
1522
IdP の Web ページが表示され(図 27 を参照)
、ログインが正常に完了すると、ブラウザが
1523
SP の Web サイトに再びリダイレクトされ、Joe Self は SP のサイトにアクセスできます(図
1524
30 を参照)。
http://www.Airline.inc/login/
Airline.inc
Airline.inc
ようこそ。CarRental.inc経由の訪問を
確認しました。ログインしてください。
JoeS: 認証済
アイデンティティ連携:
はい
CarRental.inc
Joe123
“Proud Home of the
Airline.inc Affinity Group”
ログイン:
JoeS
パスワード: xxxx
直接 CarRental.inc にリダイレクトし
ます。
CarRental.inc
ユーザー
(Joe Self)
リダイレクト先:
http://www.Airline.inc/login/
1525
1526
図 27:SP が IdP のログインページにリダイレクト
1527
1528
ポリシー/セキュリティに関する注:ユーザーがクレデンシャルを直接 IdP に提示するため、IdP の
1529
Web サイトへのリダイレクトによるログインは比較的安全です。当然、ログインおよび認証イベント
1530
に伴う通常のセキュリティに対する考慮が適用されます。
1531
1532
5.7.1.2 IdP のダイアログボックスによるログイン
1533
1534
IdP のダイアログボックスでログインする場合、SP の Web ページに記載されたリンクをク
1535
リックすると、ダイアログまたはポップアップボックスが呼び出されます。Joe Self のブラ
1536
ウザに IdP のポップアップが表示され(図 28 を参照)、ログインが正常に完了すると、ポッ
1537
プアップボックスが閉じ、Joe Self は SP のサイトにアクセスできます(図 30 を参照)。
1538
1539
1540
http://www.CarRental.inc/
CarRental.inc
“Proud Member of the
Airline.inc Affinity Group”
http://www.Airline.inc/loginPopup/
http://www.Airline.inc/loginPopup/
ようこそ。まずログインしてくだ
Airline.inc
さい。当社のIdPの一覧は以下のと
“Proud
“Proud Home of the
おりです。
Airline.inc Affinity Group”
Airline.inc
• Airline.inc
よう
ようこ
こそ。CarRental.inc経由の訪問を確認
そ。CarRental.inc経由の訪問を確認
• CarRental.inc
しました。ログインしてください。
しました。ログインしてください。
• Hotel.inc
ログイン: JoeS
• Bank.inc
パスワード: xxxx
ユーザー
(Joe Self)
JoeS: 認証済
アイデンティティ連携: はい
CarRental.inc
Joe123
CarRental.inc
1541
1542
図 28:SP が IdP のダイアログまたはポップアップボックスを呼び出す
1543
1544
ポリシー/セキュリティに関する注:ユーザーがクレデンシャルを直接 IdP に提示するため、IdP から
1545
のダイアログボックスによるログインは比較的安全です。当然、ログインおよび認証イベントに伴う
1546
通常のセキュリティ要素に対する考慮が適用されます。
1547
1548
5.7.1.3 埋め込まれたフォームによるログイン
1549
1550
埋め込まれたフォームによるログインの場合、SP の Web ページに記載されたリンクをクリ
1551
ックすると、SP は埋め込まれたログインフォームを表示します。つまり、表示されるペー
1552
ジは SP からのものですが、Joe Self が Submit ボタンをクリックすると、
通常その情報は POST
1553
によって IdP に伝達されます(図 29 を参照)。Joe Self には、SP の Web ページから離れて
1554
いないように見えます。ログインが正常に完了すると、Joe Self は SP の Web サイトにアク
1555
セスできます(図 30 を参照)。
http://www.CarRental.inc/AirlineLogin/
CarRental.inc
Airline.inc
“Proud Member of the
Airline.inc Affinity Group”
JoeS: 認証済
アイデンティティ連携: はい
CarRental.inc
Joe123
ようこそ。以下に、Airline.incのクレデ
ンシャルを入力してください。
JoeS
ログイン:
パスワード: xxxx
フォーム POST
ユーザー
CarRental.inc
(Joe Self)
1556
1557
図 29:埋め込まれたフォームによるログイン
1558
1559
ポリシー/セキュリティに関する注: ユーザーはこの埋め込まれたフォームのメカニズムのシームレ
1560
ス性を好み、サイト運営者はユーザーが運営者の Web サイトから離れない点を好むかもしれませんが、
1561
これにはポリシーおよびセキュリティ上の重大な問題があります。このメカニズムでは、ユーザーが
1562
IdP のクレデンシャルを平文のままで SP に提供します。そのため、ユーザーの IdP アカウントに関わ
1563
るプライバシーが損なわれます。さらに、悪意のある SP がそれらのクレデンシャルを使用してユー
1564
ザーになりすますことができます。そのため、埋め込まれたフォームによる認証を採用する場合、運
1565
営者は IdP と SP 間でこのリスクに対処するための適切な契約条件を検討する必要があります。
1566
1567
5.7.1.4 ユーザーが CarRental.inc にログイン
1568
1569
次に CarRental.inc と Airline.inc が共同でログインを進め、CarRental.inc の Web サイトが
1570
Airline.inc との Joe Self のアイデンティティ連携に基づいてセッションを確立します(図 30
1571
を参照)。
CarRental.inc
“Proud Member of the
Airline.inc Affinity Group”
Joe123さん、ようこそ。サインオンは
完了しています。
Airline.inc
JoeS: 認証済
アイデンティティ連携: はい
CarRental.inc
Joe123
以下からサービスを選択してください。
• 車を予約する.
• Airline.inc のマイルを確認する
• その他
ユーザー
(Joe Self)
CarRental.inc
Joe123: 認証済
アイデンティティ連携: はい
Airline.inc
JoeS
1572
1573
図 30:SP の Web サイトがアイデンティティ連携に基づいてサービスを提供
1574
1575
5.7.2 シナリオ:いずれにもログインしていない、共通ドメインクッキーあり
1576
1577
このシナリオは、上記のシナリオとほぼ同じです。唯一異なる点は、すでに Joe Self のブラ
1578
ウザに共通ドメインクッキーがキャッシュされていることです。したがって、CarRental.inc
1579
の Web ページを訪問すると、CarRental.inc は Joe Self がどの IdP と提携しているか(この場
1580
合は Airline.inc)を即座に把握します。CarRental.inc は、上記の例で説明した 3 種類のメカ
1581
ニズムのいずれかによって即座にログインを進めるか、または先にユーザーに確認する画
1582
面を表示します。
1583
1584
ポリシー/セキュリティに関する注:実装者および運営者は、即座に IdP に認証するのか、それとも、
1585
取り消して SP にローカル認証したり、SP の提携する IdP の一覧から選択したりするのかをユーザー
1586
が判断することを考慮に入れておかなければなりません。
1587
1588
5.7.3 シナリオ:ログイン済み、共通ドメインクッキーあり
1589
1590
1591
このシナリオについては、2.2 で説明しました。
1592
6 参考文献
1593
[LibertyArchImpl]
Kannappan, L., “Liberty Architecture Implementation Guidelines.”
1594
[LibertyAuthnContext]
Madsen, P., “Liberty Authentication Context Specification.”
1595
[LibertyBindProf]
Rouault, J., “Liberty Bindings and Profiles Specification.”
1596
[LibertyGloss]
Mauldin, H., “Liberty Glossary.”
1597
[LibertyProtSchema]
Beatty, J., “Liberty Protocols and Schemas Specification.”
1598
[RFC1738]
“Uniform Resource Locators (URL),”
1599
1600
http://www.ietf.org/rfc/rfc1738.txt
[RFC2119]
S. Bradner, “Key words for use in RFCs to Indicate Requirement
1601
Levels,” http://www.ietf.org/rfc/rfc2119.txt, IETF RFC 2119, March
1602
1997.
1603
[RFC2246]
“The TLS Protocol Version 1.0,” http://www.ietf.org/rfcs/rfc2246.html.
1604
[RFC2396]
“Uniform Resource Identifiers (URI): Generic Syntax,”
1605
1606
http://www.ietf.org/rfc/rfc2396.txt.
[RFC2616]
1607
“Hypertext Transfer Protocol — HTTP/1.1,”
http://www.ietf.org/rfc/rfc2616.txt.
1608
[RFC2617]
“HTTP Authentication,” http://www.ietf.org/rfc/rfc2617.txt.
1609
[RFC2965]
“HTTP State Management Mechanism,”
1610
1611
http://www.ietf.org/rfc/rfc2965.txt.
[SAMLBind]
P. Mishra et al., “Bindings and Profiles for the OASIS Security
1612
Assertion Markup Language (SAML),”
1613
http://www.oasis-open.org/committees/security/docs/draft-sstc-bindings-
1614
model-11.pdf, OASIS, January 2002.
1615
[SOAP1.1]
D. Box et al., “Simple Object Access Protocol (SOAP) 1.1,”
1616
http://www.w3.org/TR/SOAP, World Wide Web Consortium Note,
1617
May 2000.
1618
[SSLv3]
“The
SSL
Protocol
1619
http://www.mozilla.org/projects/security/pki/nss/ssl/draft302.txt.
Version
3.0,”
Fly UP