マイクロソフト株式会社

セッション ID:T3-304
AD FS 2.0 のアーキテクチャと
Windows Azure 連携の実装
~ AD FS 2.0 によるシングル サインオンの実現 2 ~
マイクロソフト株式会社
デベロッパー & プラットフォーム統括本部
エバンジェリスト
安納 順一 (あんのう じゅんいち)
ご注意
コードをゴリゴリ書くセッションではありません
基本的な解説は「あまり」行いません
AD FS とは
クレーム ベースの認証とは
フェデレーションとは
Appendix に基本的な情報を掲載しておりますので
参考にしてください
[復習] AD FS の基礎知識
3
Identity はハイブリッドなテクノロジ
アーキテクチャが両者に影響
両者の「架け橋」となる役割が必要
インフラ担当
開発担当
設計
構築
管理
4
コード
Identity
テスト
仕様変更
混乱していませんか?
T1-304
Windows
Live ID
Microsoft
Federation
Gateway
STS
ココをお話しします
T3-304
platform
AppFabric
Access Control
STS Service
STS
Active
Directory
5
Active Directory
Federation Service
セッションの目的とゴール
Session Objectives and Takeaways
セッションの目的
以下のテクノロジに関する解説とデモンストレーション
AD
AD
AD
AD
FS
FS
FS
FS
2.0
2.0
2.0
2.0
のアーキテクチャ
を使用した クラウド アプリケーションとの SSO
と AppFabric ACS との相互運用
と 他社製品 との相互運用
セッションのゴール
[クラウド] + [Identity] 案件における
アーキテクチャ決定に必要な事項を理解し、
適切な設計と構築が行える。
または、指示を与えることができるようになる。
6
アジェンダ
第 1 章 AD FS 2.0 のアーキテクチャ
AD FS 2.0 の内部動作について理解し、
インフラ担当者と開発者の作業範囲を把握しましょう
第 2 章 Windows Azure platform
AppFabric Access Control Service のアーキテクチャ
AppFabric ACS のアーキテクチャを理解し、
「できること」と「できないこと」を把握しましょう
第 3 章 AD FS 2.0 の相互運用性
AD FS 2.0 が実装している SAML 2.0 の仕様を理解し、
他ベンダーの製品やサービスとの相互運用性の
可能性について理解しましょう
7
第1章
AD FS 2.0 のアーキテクチャ
[復習] STS について
WIF アプリケーションとの連携
クレーム パイプライン
STS (Security Token Service) の役割
セキュリティトークンの発行と管理
クラウド アプリケーションとオンプレミスの架け橋
信頼
信頼
ACS
STS
信頼できるかどう
かはそれぞれの
アーキテクチャに
依存する
AD DS
9
信頼
信頼
STS
AD FS
3 種類の STS(Security Token Service)
STS により「使用目的」と「出来ること」が異なる
【 AD FS 2.0 】
高機能な STS
オンプレミスに配備
any
IdPs
AD FS 2.0
AD FS
2.0
【 ACS 】
クラウド上に
用意された STS
【 MFG 】T1-304
Microsoft Online Services
用に用意された STS
MFG
ACS
AD FS
2.0
any
IdPs
AD FS
2.0
MFG:Microsoft Federation Gateway
ACS : Windows Azure platform AppFabric Access Control Service
10
信頼
WIF アプリケーションとの連携
クラウド上に Identity 情報を用意せずに、
クレームによるアクセス承認が可能
WIF
7
3
8
クラウド
オンプレミス
AD DS
AD FS 2.0
5
4
1
11
2
WIF:Windows Identity Foundation
6
WS-Federation (Passive SSO) の流れ
1. オンプレミスの AD DS にログオン依頼
2. AD DS からクレデンシャルが送信されクライアントに保存
-----------3. Windows Azure 上のアプリケーションにアクセス
4. クレーム ポリシーをアプリケーションから受け取り、
STS (AD FS 2.0) にリダイレクト
5. 属性ストアである AD DS からクレームを収集
6. 集めたクレームに署名をしてセキュリティトークンを生成し、
Windows Azure アプリケーションに送信
7. アプリケーションはセキュリティトークンを受け取り、
Windows Identity Foundation (WIF) を使用してクレーム
を取り出し、評価する
8. 画面がブラウザーに送られる
12
ITPRO の方へ
開発者に渡すべき情報
は何なのか?について
理解しましょう
WIF
クラウド
オンプレミス
AD DS
13
AD FS 2.0
WIF:Windows Identity Foundation
「信頼」とは?
物理的には
メタデータ/証明書/暗号化キーを事前に交換
お互いの「すり替わり」を防止
データの横取りを防止
IdP/CP
Metadata
URI
信頼
RP/SP
Metadata
精神的には
IdP 側 の Identity/Role 管理責任を信頼
RP 側の クレーム管理責任を信頼
14
URI
WIF アプリケーションの構造
WIF (Windows Identity Foundation) を使用して
セキュリティー トークンからクレームを取り出す
WIF は WS-Federation/WS-Trust をサポート
ロールは既にトークンに
セットされているので
評価するだけでOK
AD FS 2.0
ASP.NET
Windows Identity
Foundation
.NET Framework 4
ブラウザー
15
クレームの評価
ロール判定
各種処理
クレームの構造と識別方法
Microsoft.IdentityModel.Claims
http://msdn.microsoft.com/ja-jp/library/microsoft.identitymodel.claims.aspx
これらの値で
クレームを識別する
Claims
Claim
ClaimType
Claim
Value
Claim
Issuer
Claim
OriginalIssuer
ValueType
subject
16
アプリケーション作成時の留意点
空の属性はクレームに含まれない
ゆえにトークンにも含まれない
安易に「既定値」を使用するととんでもないことに!
IdP
氏名 = 安納 順一
会社名 = マイクロソフト株式会社
役職= (空)
RP
氏名 = 安納 順一
会社名 = マイクロソフト株式会社
17
WIF
クラウド
オンプレミス
AD DS
18
AD FS 2.0
WIF:Windows Identity Foundation
Dev の方へ
AD FS からどこまで精度
の高い情報が得られるの
かを理解しましょう
用語について
基本的に、日本語 UI に沿った用語を使用します。
が…ちょっとアレなところもあるので、以下の対応票を参考にしてください。
19
日本語
対応する英語
要求
Claim, クレーム
規則
Rule, ルール
要求の種類
Claim Type, クレームタイプ
要求記述
Claim Description, クレームディスクリプション
要求 プロバイダー
Claims Provider, クレーム プロバイダー
証明書利用者
Relying Party, リライング パーティ
発行承認規則
Issuance Authorization Rules
受付変換規則
Acceptance Transform Rules
発行変換規則
Issuance Transform Rules
AD FS 2.0 ~クレーム パイプライン
証明書利用者
(RP)
要求プロバイダー/属性ストア
要求プロバイダー信頼
(Claims Provider Trusts)
20
要求規則 (Claim Rule)
OK/
NG
output
発行
変換
規則
input
発行
承認
規則
output
受け
付け
変換
規則
input
③ 発行する
output
② 承認する
input
① 受付ける
トークン
switch
証明書利用者信頼 (Relying Party)
要求規則 (Claim Rule)
入力された情報をルール (規則) に沿って処理し出力する
処理されたクレームは既定のパイプラインを通る
要求規則
他の要求
プロバイダー
AD DS
AD LDS
LDAP
SQL Server
その他
21
入力方向の要求
LDAP 属性
メンバーシップ
カスタム クレーム
スルー
変換
フィルター
出力
要求規則 の処理プロセス
クレーム
要求規則セット
Input Claim Set
条件
Output Claim Set
要求規則1
発行
要求規則2
要求規則 n
トークン
22
要求規則テンプレート
要求規則を作成するためのテンプレート
作成した要求規則は1つの IdP/RP にのみ関連付けられる
[LDAP 属性を要求として送信]
[グループ メンバーシップを要求として送信]
[入力方向の要求を変換]
[入力方向の要求をパススルーまたはフィルター処理]
[カスタム規則を使用して要求を送信]
[入力方向の要求に基づいてユーザーを許可または拒否]
[すべてのユーザーを許可]
23
カスタム規則の定義
テンプレートに用意されていないルールは
自作することができる
「要求規則言語」を使用する
発行部
条件部
条件文 1
&&
&&
条件文 2
True
=>
発行文
False
条件部 入力方向のクレーム/属性をチェックし、
オプション すべての条件が True の場合に「発行部」が実行される。
条件部が無い場合には無条件で True とみなされる。
発行部 発行するトークンタイプと、
そこに格納する属性/値を指定する。
必須
24
カスタム規則の書式 (例)
<変数>:[ <クレームの属性> == <値> ]
=> issue ( <発行書式> );
パス スルー (入力クレームをそのまま出力クレームに転送)
c:[type == “http://schemas.xx.org/claims/Email”]
=> issue (claim = c) ;
ユーザー名で AD DS を検索して会社名を取り出す
c:[Type ==
"http://schemas.microsoft.com/ws/2008/06/identit
y/claims/windowsaccountname", Issuer == "AD
AUTHORITY"]
=> issue(store = "Active Directory", types =
("http://schemas.xmlsoap.org/ws/2005/05/identity
/claims/givenname"), query = ";company;{0}",
param = c.Value);
25
第 1 章のまとめ
AD FS 2.0 を使用すると
【利用者】
オンプレミスの Identity でクラウド上のアプリケーションに Single
Sign-On できる
【ITPRO】
クラウド アプリ用の Identity を個別に管理する必要が無い
※今まで通り Active Directory で!
【開発者】
アプリケーションは ID/ロール管理から解放されるため、
Identity 関連のビジネス ロジック変更に影響を受けない
企業間の相互運用にも AD FS 2.0
26
進化が楽しみなもう1つの STS
第2章
AppFabric ACS のアーキテクチャ
Windows Azure platform の STS として
どのような役割を担うのか
Windows Azure platform
AppFabric Access Control Service V1
RESTful サービスに特化したシンプルな RP/SP 用 STS
プロトコル
トークン
:OAuth WRAP
:SAML 1.1,SAML 2.0,SWT
道路の混雑状況を提供するサービス
問 返
合 答
せ
ユーザー
アプリ
28
問 返
合 答
せ
ユーザー
アプリ
Windows Azure platform
AppFabric Access Control Service V1
RESTful サービスに特化したシンプルな RP/SP 用 STS
:OAuth WRAP
:SAML 1.1,SAML 2.0,SWT
AppFabric
Access Control Service
信頼
Service Bus
セキュリティ キー
or
SAML 1.1/2.0
トークン
or
SWT
29
STS
platform
信頼
REST
Relying Party
プロトコル
トークン
AD FS 2.0 と ACS V1 の違い
AD FS 2.0 の替わりにはなれないことに注意
AD FS 2.0
ACS V1
プロトコル
• SAML 2.0
• WS-Federation
• WS-Trust
• OAuth WRAP
(for REST service)
トークン
• SAML 1.1
• SAML 2.0
• SAML 1.1/2.0 (AD FS 2.0)
• SWT
トークン発行の
要件
• AD DS による認証
• セキュリティ キー
• SAML 1.1/2.0 トークン
• SWT
役割
IdP/CP, RP/SP
RP/SP
Passive SSO
○
×
管理方法
• 管理コンソール
• ACM.exe コマンド
• ACSM Browser
•
30
Windows PowerShell
アプリケーション
に WIF は必要か?
必要
必要ない
IdP の選択
○ 選択ページのカスタ × クライアントアプリケーショ
マイズも可能
ンが IdP を意識する
ACS を 企業内 AD との SSO に使用する
ACS では Passive SSO がサポートされていないことに注意
WS-Trust
信頼
ACS
WRAP
9
REST
Service
5
クラウド
信
頼
オンプレミス
AD DS
4 6
8
10
AD FS 2.0
2
1
7
3
クライアント
アプリケーション
31
処理の流れ
1. クライアント アプリケーションが AD FS 2.0 に
トークン発行を依頼
2. AD DS からクレームを収集
3. AD FS 2.0 から SAML 1.1 トークン発行
4. トークンを ACS に送信
5. ACS は受け取った SAML 1.1 トークンをルールに沿って検証
6. SWT を生成し、クライアントに発行
7. クライアント アプリケーションは受け取った SWT を分解し、
正しい ACS から発行されたものか等を検証
8. 問題なければ HTTP Authorization ヘッダーに SWT を埋め
込み、REST サービスに POST
9. REST サービスは受け取った SWT を分解してロールを検証
10. ロールが正しければサービスを実行
32
ACS のトークン発行条件 (認証)
セキュリティ キー
POST /WRAPv0.8/ HTTP/1.1
Host:<NameSpace>.accesscontrol.windows.net
applies_to=http%3A%2F%2Fadatum.com%2Fservices%2F&
wrap_name=adatumcustomer1&
wrap_password=5znwNTZDYC39dqhFOTDtnaikd1hiuRa4XaAj3Y9kJhQ%3D
AD FS 2.0 SAML 1.1/2.0 トークン
・・
applies_to=http%3A%2F%2Fadatum.com%2Fservices%2F&
wrap_SAML=<…SAML Bearer Token…>
SWT
・・
applies_to=http%3A%2F%2Fadatum.com%2Fservices%2F&
wrap_SWT=<…Simple Web Token…>
33
ACS の構成情報
IdP/CP
RP/SP
AD FS
AD DS 2.0
AppFabric ACS
信頼
Namespace
Key
Scope
クライアント
アプリケーション
34
Issuer
SAML 1.1/2.0
トークン
Rule
InClaim
SWT
OutClaim
Application
REST Service
信頼
SWT ~ Simple Web Token
ACS から発行されたトークンは検証後、
HTTP Authorization ヘッダーに格納して REST Service
に POST する
role=Admin%2cUser&custo
merName=Contoso%20Corp
oration&Issuer=https%3a%
2f%2fmyservice.accesscontr
ol.windows.net%2f&Audienc
e=http%3a%2f%2flocalhost
%2fmyservice&ExpiresOn=1
255912922&HMACSHA256=
yuVO%2fwc58%2ftYP36%2f
DM1mS%2fHr0hswpsGTWw
gfvAbpL64%3d
35
Key
Hash
Claim 1
Claim 2
Claim n
Issure
Audience
ExpiresOn
HMACHA256
アプリケーション側の対応
クライアント アプリケーション
AD FS 2.0 に SAML 1.1/2.0 クレームの発行を依頼
ACS に SAML 1.1/2.0 クレームを送信、SWT を受け取る
SWT 内の 4 つの主要クレームを検証する
署名
:
発行者 :
発行先 :
有効期限:
HMACHA256
AD FS 2.0
Issuer
REST サービス
Audience (== applies_to)
ExpiresOn
SWT を Authorization ヘッダーに格納して POST
REST サービス
HTTP Authorization ヘッダーからクレームを直接取り出す
ロールを検証しクライアント アプリケーションに
アクセス許可を与える
36
第 2 章のまとめ
クラウド上に用意された STS (ACS) により、
[オンプレミス]-[クラウド] のフェデレーションを実現
Passive SSO には未対応
ACS は発展中です
現時点で AD FS 2.0 とのフェデレーションが可能
V2 でサポート予定の機能
主要 IdP とのフェデレーション信頼
AD FS 2.0(対応済)
Live ID, Facebook,Yahoo!,
Google
主要プロトコルの実装
WS-Trust, WS-Federation
OpenID
IdP の選択画面と
そのカスタマイズ
37
第3章
AD FS 2.0 の相互運用性
AD FS 2.0 vs. SAML 2.0
相互運用性 を考えるにあたり
「相互運用」する箇所を明確にする
IdP/CP
RP/SP
STS の仕様
サービス
API
認証サービス
STS
プロトコル
プロトコル/トークン形式
トークン形式
属性ストア
STS
API
サービス
API
サービス
39
相互運用の例
実装済
予定
プロトコルとトークンが一致していても、
相互運用には連携相手の「意向 (戦略)」による (場合がある)
IdP/CP
AD DS
WLID
OpenLDAP
RP/SP
AD FS 2.0
WS-Fed.
MFG
OAuth
WRAP
ACS
Azure App
Shibboleth
WSTrust
MFG+
WLID
MSO
SAML
2.0
AD FS
IIS
SAML 2.0 対応製品
OpenID Provider (OP)
OAuth
OpenID
40
MSO: Microsoft Online Services
WIF Azure App
SAML 2.0 対応製品
OpenID RP
用語の違い
AD FS 2.0
Security Token
SAML 2.0
Assertion
セキュリティトークン
アサーション
Claims
Assertion Attributes
要求
アサーション属性
Claims Provider (CP)
Identity Provider (IdP)
要求 プロバイダー ※ 1
アイデンティティ プロバイダー
Relying Party (RP)
Service Provider (SP)
証明書利用者 ※ 2
サービス プロバイダー
※ 1 AD FS 1.0 では Account Partner と呼んでいた
※ 2 AD FS 1.0 では Resource Partner と呼んでいた
41
SAML 2.0 対応製品との相互運用性
AD FS 2.0 をサポートしている OS
Windows Server 2008/R2
検証済み SAML 2.0 相互運用性パートナー
Entrust IdentityGuard Federation Module 9.2,
GetAccess 8.0
IBM Tivoli Federated Identity Manager (TFIM) 6.2
Novell Access Manager 3.1
Ping Identity PingFederate v6.1
SAP NetWeaver Identity Management 7.2
Siemens DirX Access V8.1
AD FS 2.0 がサポートする SAML 2.0 操作モード 重
要
IdP Lite, SP Lite, eGov Profile 1.5
42
SAML 2.0 プロファイルと操作モード
~ OASIS Criteria
ADFS2
ADFS2
IdP Lite SP
SP Lite ECP
プロファイル
機能
IdP
Web ブラウザー ーSSO
AuthnRequest
必須 必須
必須 必須
-
POST
必須 必須
必須 必須
-
必須
必須 必須
-
アーティーファクト 必須
アーティファクトの解決
SOAP
必須 必須
必須 必須
-
Enhanced Client/Proxy
PAOS
必須 必須
必須 必須
必須
主体名の識別子の管理
必須 禁止
必須 禁止
-
主体名の識別子のマッピング
必須 禁止
必須 禁止
-
リダイレクト
必須 必須
必須 必須
-
SOAP
必須 選択
必須 選択
-
Cookie
必須 必須
選択 選択
-
Furnish/process
Metadata
選択 選択
選択 選択
-
シングル ログアウト
IdP 検出
43
相互運用のポイント
Metadata の考慮
属性のフォーマット
Name ID
クレームの暗号化
署名
CRL のチェック
44
今回は
ここを見てみましょう
Appendix を
ご覧ください
相互運用のポイント~ Metadata
• AD FS 2.0 の場合
• Metadata には WS-Trust/WS-Federation に関する
記述が存在する
• パートナー側への読み込み時にエラーとなることがある
• 対処法
• WS-Trust/WS-Federation に関する記載を削除する
• <RoleDescriptor xsi:type="fed:ApplicationServiceType“
~
</RoleDescriptor>
• <RoleDescriptor xsi:type="fed:SecurityTokenServiceType”
~
</RoleDescriptor>
45
(参考) 相互運用性 Step by Step ガイド
以下の製品との相互運用性ドキュメントが
Step By Step として公開済
CA Federation Manager
Oracle Identity Federation
Microsoft ダウンロード センターで検索
AD FS 2.0
※ 近日、学術情報フェデレーション (Shibboleth 2) との
相互運用性ドキュメントを公開予定
46
第 3 章のまとめ
[ SAML 対応 !] という表記は互換性の担保ではありません
AD FS 2.0 は他社製品との [ フェデレーション信頼 ] が
可能です。ただし…
Metadata の修正等 細かな対応が必要な場合があります。
大人の階段を上るには「たった 1 回の実証実験」が重要
47
まとめ
まとめ
シングル サインオン実現の「カギ」は信頼関係です
まずは社内ディレクトリ サービスの整備から
3 つのテクノロジの進化がハイブリッド環境を支えます
AD FS 2.0
Windows Azure AppFabric Access Control Service
Microsoft Federation Gateway
Interoperability は、
マイクロソフトの重点課題です
「知っていること」==「強み」です
「知っている人」がプロジェクトを操れます
49
関連セッション
50
終了御礼
T1-304 Day1 15:20 ~ 16:30
次期 Microsoft Online Services の ID およびアクセス管理
~ AD FS 2.0 によるシングル サインオンの実現 1 ~
イ
ン
フ
ラ
開
発
終了御礼
T1-404 Day2 15:20 ~ 16:30
Windows Azure platform AppFabric サービス バスにおける
設計パターン、ベスト プラクティスおよびテクニック
イ
ン
フ
ラ
開
発
BOF-09 Day3 10:55 ~ 12:05
Silverlight と WIF (Windows Identity Foundation) の
アプリケーション連携
イ
ン
フ
ラ
開
発
T3-302 Day3 16:50 ~ 18:00
ポリシー ベースで ID 管理を実現する!
~ Forefront Identity Manager 2010 実践的構築手法 ~
イ
ン
フ
ラ
開
発
参考サイト
スピーカー (安納 順一) の Blog
http://blogs.technet.com/junichia/
TechDays 2010 T4-401オンプレミス & クラウドにおける Identity 連携の全体像
http://www.microsoft.com/japan/events/techdays/2010/
Active Directory TechCenter
http://technet.microsoft.com/ja-jp/activedirectory/default.aspx
Geneva Team Blog
http://blogs.msdn.com/b/card/
@IT Windowsで構築する、クラウド・サービスと社内システムのSSO環境
http://www.atmarkit.co.jp/fwin2k/operation/adsf2sso01/adsf2sso01_01.html
Internet2 Microsoft Interop (英語)
https://spaces.internet2.edu/display/SHIB2/MicrosoftInterop
51
ご清聴ありがとうございました!
セッション ID
T3-304
アンケートにご協力ください
Appendix
1.
2.
3.
4.
5.
6.
7.
8.
復習 : AD FS の基礎知識
AD FS 2.0 要求規則セットのタイプ一覧
AD FS 2.0 既定のクレームタイプ一覧
AD FS 2.0 既定の LDAP 属性一覧
AD FS 2.0 サーバーの構成データベース
SAML 2.0 操作モードとプロファイルの一覧
AD FS 2.0 と SAML 2.0 対応製品 相互運用のポイント
クレーム ベースのフェデレーションが実現する
Windows Azure と ID as a Service の連携
1. 復習 : AD FS の基礎知識
ID を使用する環境
クラウド
55
企
業
間
ID & アクセス管理にまつわる課題
ID 管理の複雑化
アクセス管理の複雑化
管理コストの増加
絡み合ったテクノロジ
クラウドの登場が拍車をかける?
56
自宅
• ユーザー ID を PC に登録
57
組織内
• ディレクトリ サービスの導入
58
企業全体①
• メタディレクトリ システムによる同期
Metadata
59
企業全体②
• 証明書による認証/承認
60
企業全体③-組織間
• クレームベースのセキュリティ
信頼
61
企業間
• フェデレーション + クレームベース
信頼
62
企業-クラウド
• フェデレーション + クレームベース
信頼
63
予測される ID 管理の問題点
見えない利用者の ID 管理/認証/承認
異なる認証方式の相互運用
クレームベース セキュリティ
フェデレーション セキュリティ モデル
64
フェデレーション関連製品群
Active Directory Federation Service 2.0
旧称 Geneva Server
STS(Security Token Service)
Windows CardSpace
旧称 Windows CardSpace Geneva
アイデンティティ プロバイダーのセレクター
Windows Identity Foundation(WIF)
旧称 Geneva Framework
ID モデルのフレームワーク
カスタム STS の開発
65
AD FS とは
AD FS 1.x
WS-Federation プロトコルをサポート
Web ブラウザーによるパッシブ プロファイル
SAML トークンをサポート (プロトコルではない)
サード パーティとの相互運用性検証済
AD FS 2.0
SAML 2.0 プロトコルを追加
SAML 1.1, Liberty Alliance ID-FF 1.2,
Shibboleth 1.3 をカバー
2009 年 Kantara INITIATIVE による
相互運用性テストをパス
66
AD FS 2.0 の目的
Identity ビジネス ロジックの可視化
誰が?
どの
機能に?
どこに?
どんな「役割」で?
アクセスできるのか?
を明確にしてサービスに渡すこと
結果として SSO が容易になる
67
AD FS 2.0 でサポートされている
プロトコルとトークン
パッシブ SAML WebSSO
SAML 2.0 トークン
パッシブ WS-Federation
SAML 1.1 トークン
アクティブ WS-Trust
(CardSpace 対応含む)
SAML 2.0 トークン
SAML 1.1 トークン
68
WS-Federation による相互運用性
AD FS v1.x をサポートしている OS
Windows Server 2003 R2
Windows Server 2008/R2
WS-Federation 相互運用パートナー
IBM Tivoli Federated Identity Manager
CA eTrust Siteminder 6 SP5
Oracle Identity Federation
Ping Identity PingFederate
Novell Access Manager 3.1
Shibboleth System 1.3
Sun OpenSSO Enterprise
69
SAML 2.0 製品との相互運用性
AD FS 2.0 をサポートしている OS
Windows Server 2008/R2
検証済み SAML 2.0 相互運用性パートナー
Entrust IdentityGuard Federation Module 9.2,
GetAccess 8.0
IBM Tivoli Federated Identity Manager (TFIM) 6.2
Novell Access Manager 3.1
Ping Identity PingFederate v6.1
SAP NetWeaver Identity Management 7.2
Siemens DirX Access V8.1
AD FS 2.0 がサポートする SAML 2.0 操作モード
IdP Lite, SP Lite, eGov Profile 1.5
70
AD FS の役割 ①
IdP - RP フェデレーション信頼 の確立
クレームの収集とトークンの発行
コードレス
ID 管理
認証
ロール管理
(クレーム フロー)
信頼
AD FS
トークン
ユーザー ID
部署
役職
71
サービス
ロ
ー
ル
判
定
処理
本体
アプリケーション
AD FS の役割 ②
組織/企業間のセキュリティ トークンのゲートウェイ
サービスに合った形式に変換
AD FS
AD FS
or any STS
or any STS
信頼
収集
変換
企業 B
企業/組織の壁
72
処理
本体
アプリケーション
トークン
企業 A
ロ
ー
ル
判
定
クレームとは
ユーザーについての詳細情報
承認に使用される
73
セキュリティ トークン
パッケージ化されたクレーム
発行者の署名によって信頼性を担保
STS ( Security Token Service ) が生成する
74
クレームベースの認証
①信頼
75
クレームベース セキュリティの利点
多元要素による身分証明精度の向上
ID/Password 以外の要素を受け入れ
セキュリティ ポリシーの可視化
ロール変更への柔軟な対応
サービスとロール管理の分離
要求項目のカスタマイズ (コード変更無し)
スケール アップしたアプリとの親和性
企業間認証
クラウド認証
76
サービスと認証/ロール管理の分離
アプリケーション
アプリケーション
アプリケーション
77
組織間でクレームを使うには
発行元が要求元に信頼されている
要求元は複数の発行元を信頼しうる
78
(例) 入国審査
信頼
信頼
79
フェデレーション セキュリティ モデル
信頼
信頼
80
フェデレーションによる Passive SSO 手順
信頼
ユーザー
81
信頼
① Application アクセスに必要なクレーム要求を取得
② RP アクセスに必要なクレーム要求を取得
③ IP にアクセスして認証を行い、RP アクセスに必要
なトークンを取得
④ RP にクレームを渡し、Application アクセスに必要
なトークンを要求
⑤ Application アクセスに必要なトークン取得
⑥ ID Library にトークンを渡す
⑦ ID Library はトークンを解析しクレームを取得
82
マイクロソフト テクノロジに置き換えると
Active
Directory
ADFS 2.0
ADFS 2.0
信頼
信頼
WIF
83
ADFS と他社 STS の相互運用
企業 C
ID Store
ADFS 2.0
他社 STS
信頼
信頼
WIF
ADFS 2.0
他社 STS
信頼
84
信頼
Active
Directory
Windows CardSpace
トークン発行プロセスの安全性向上
フィッシング防止
マネージド カード (IdP が発行したカード) と個人用 カード
マネージド カードには個人情報は含まれない
85
CardSpace 個人用カードの用途
自分自身が IdP
クレームは自分で用意する
新宿西口
予約年月日 2010年3月1日
17:00~18:00
予約時間
地域
86
2. AD FS 2.0
要求規則セットのタイプ一覧
要求規則セット (Claim Rule Set) のタイプ
受け付け要求規則 - Acceptance Transform Rule Set
要求プロバイダー ー (AD DS, SQL Server, LDAP) から
受け入れるクレーム セット
発行承認規則 - Issuance Authorization Rule Set
証明書利用者 (RP) にアクセス可能なユーザーを明確にするための
ルール。許可されたユーザーは「発行変換規則」からクレームを
受け取れるため、証明書利用者へのアクセスが可能になる。
発行変換規則 - Issuance Transform Rule Set
「受け付け要求規則」から発行されたクレーム セットを入力とし、
証明書利用者 (RP) に発行するクレームを生成する
委任承認規則 - Delegation Authorization Rule Set
他のユーザーの代理として証明書利用者 (RP) にアクセスできるかどうか
を判断するためのルール
偽装承認規則 - Impersonate Authorization Rule Set
ユーザーが他のユーザーを偽装してアクセスできるかどうかを
判断するためのルール。Windows PowerShell で実装する。
88
3. AD FS 2.0
既定のクレームタイプ一覧
既定のクレーム タイプ
英語表記
日本語表記
E-Mail Address
電子メール アドレス
Given Name
指定名
Name
名前
UPN
UPN
Common Name
共通名
AD FS 1.x E-Mail Address
AD FS 1.x 電子メール アドレス
Group
グループ
AD FS 1.x UPN
AD FS 1.x UPN
Role
役割
Surname
姓
PPID
PPID
Name Identifier
名前 ID
Authentication Method
認証方法
90
英語表記
日本語表記
Deny Only Group SID
拒否のみグループ SID
Deny only primary SID
拒否のみプライマリ SID
Deny only primary group SID
拒否のみプライマリ グループ SID
Group SID
グループ SID
Primary Group SID
プライマリ グループ SID
Primary SID
プライマリ SID
Windows account name
Windows カウント名
Authentication Instant
認証タイム スタンプ
91
4. AD FS 2.0
既定の LDAP 属性一覧
既定の LDAP 属性
これ以外の ldap 属性を使用する場合には「カスタム規則」を使用
LDAP 属性
LDAP 属性
Company
State-Or-Province-Name
Department
Street-Address
Display-Name
Surname
E-Mail-Address
Telephone-Number
Employee-ID
Title
Employee-Number
Token-Groups (SID)
Employee-Type
Token-Groups - ドメイン名を含む
Given-Name
Is-Member-Of-DL
Token-Groups - 完全修飾ドメイン名
を含む
Organizational-Unit-Name
Token-Groups - 名前の指定なし
Organization-Name
User-Principal-Name
Proxy-Addresses
SAM-Account-Name
93
5. AD FS 2.0
サーバーの構成データベース
AD FS 2.0 ~ サーバー ファームと構成 DB
低
可
用
性
高
スタンドアロン + WID
サーバー ファーム+ WID
各サーバーが WID を持つ
5 分に 1 回の更新チェック
(各サーバー→プライマリ)
機能制限が発生
SAML Token Replay Detection
SAML Artifact Resolution
サーバー ファーム+ SQL Server
fsconfig.exe コマンドによる構成
WID からの移行は不可
SQL Server は 1 セット
クラスター構成可能
WID:Windows Internal Database
95
プライマリ
ADFS
R/W
ADFS
R/O
セカンダリ
ADFS
R/O
セカンダリ
ADFS ADFS ADFS
SQL
Server
R/W
(参考) Token Replay Attack とは
http://msdn.microsoft.com/en-us/library/ee517257.aspx
取得済のセキュリティ トークンを再利用して
アクセス権を得ようとするアタック
キオスク端末等でブラウザーを閉じないと危険
ブラウザーの [戻る] でトークン取得ポイントに戻れてしまう
WIF には Replay を検出する機能が実装されている
Replay 検出は規定でオフ
有効にするには DetectReplayedTokens 値を true
96
(参考) SAML Artifact Resolution とは
Artifact (アーティファクト)
セキュリティトークン (SAML Assertion) のリファレンス
SSO を実現する トークン受け渡し手順 の 1 つ
① ブラウザーはトークンではなく、トークンの「Artifact」を
STS から受け取り RP にリダイレクトする
② RP は受け取った Artifact を IdP に提示して正当性を評価
③ 評価 OK ならば、RP は IdP から直接トークンを取得する
•
ユーザーとサーバー間の通信帯域が細い場合に有用
STS
97
3
2
1
サービス
6. SAML 2.0
操作モードとプロファイルの一覧
SAML 2.0 の構成要素
プロファイル
アサーション (セキュリティトークン)
承認に必要な情報 (属性)
プロトコル
バインディング
プロトコル
アサーション
IdP/SP/クライアント間のメッセージ送受信の手順
バインディング
リクエストの方法 (Post/Redirect/Artifact/SOAP…)
セキュリティ(SSL/TLS)
プロファイル
プロトコル、バインディング、アサーションの組み合わせ
メタデータ
信頼する IdP や RP に関する情報
エンドポイントと使用可能なバインディング
署名、キー
99
SAML 2.0 操作モード
(SAML 2.0 Operational Mode)
IdP
IdP Lite AD FS 2.0
SP
AD FS 2.0
SP Lite
IdP Extended
SP Extended
Enhanced Client/Proxy (ECP)
SAML Attribute Authority
SAML Authorization Decision Authority
SAML Authentication Authority
SAML Requester
Post Binding (Liberty Alliance Optional)
eGov (Liberty Alliance Optional) AD FS 2.0
100
SAML 2.0 プロファイル
SAML 2.0 の Use-Case
アサーション/プロトコル/バインディングの組み合わせ
英語での名称
日本語での名称
Web Browser SSO
Web ブラウザー SSO
Artifact Resolution SSO
アーティファクトの解決
Enhanced Client/Proxy SSO
Enhanced Client/Proxy
Name Identifier Management SSO 主体名の識別子の管理
Single Logout SSO
シングル ログアウト
Identity Provider Discovery SSO
IdP 検出
Assertion Query/Request
識別子のアサーション要求
Name Identifier Mapping
主体名の識別子のマッピング
SAML Attribute
SAML 属性
101
7. AD FS 2.0 と SAML 2.0 対応製品
相互運用のポイント
•
•
•
•
•
•
•
Metadata
属性のフォーマット
クレームの暗号化
署名
Name ID
(参考) Persistent ID と Transient ID
CLR のチェック
相互運用のポイント~ Metadata
• AD FS 2.0 の場合
• Metadata には WS-Trust/WS-Federation に関する
記述が存在する
• パートナー側への読み込み時にエラーとなることがある
• 対処法
• WS-Trust/WS-Federation に関する記載を削除する
• <RoleDescriptor xsi:type="fed:ApplicationServiceType“
~
</RoleDescriptor>
• <RoleDescriptor xsi:type="fed:SecurityTokenServiceType”
~
</RoleDescriptor>
103
相互運用のポイント~属性のフォーマット
• AD FS 2.0 の場合
• 属性 Format の既定値は「unspecified」
urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified
• (例) Shibboleth 2.0 の既定値は以下
urn:oasis:names:tc:SAML:2.0:attrname-format:uri
• 対処法
• 相手側も unspecified とする
or
• 2 段階のクレームルールで処理する
① 属性から値を取得
② 取得した値の attrname-format を uri に変更
次のページ参照
104
(参考) attrname-format:uri への変換
c:[
Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
Issuer == "AD AUTHORITY"]
=> add(
store = "Active Directory",
types = ("urn:oid:1.3.6.1.4.1.5923.1.1.1.6"),
query = ";userPrincipalName;{0}",
param = c.Value);
c:[
Type == "urn:oid:1.3.6.1.4.1.5923.1.1.1.6"]
=> issue(
Type = c.Type,
Value = c.Value,
Issuer = c.Issuer,
Properties[
"http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] =
"urn:oasis:names:tc:SAML:2.0:attrname-format:uri");
105
相互運用のポイント~クレームの暗号化
(Encryption)
• AD FS 2.0 の場合
• AES-256 を使用
(例) Java の場合 既定値は AES-128
• 対処法
• 相手側も AES-256 を使用する
or
• AD FS 2.0 側で暗号化を無効にする
(set-ADFSRelyingPartyTrust コマンドレット)
106
相互運用のポイント~署名 (Signing)
AD FS 2.0 の場合
規定で SHA-256 を使用する
IdP の場合は アサーション、各種応答、
ログアウト要求
SP の場合 は 認証依頼 (AuthnRequest) 、
ログアウト応答、アーティファクト GET
対処法
AD FS 2.0 側で SHA-1 を使用する
or
相手側も SHA-256 を使用する
107
相互運用のポイント ~ Name ID
Name ID とは
• SAML 2.0 で交換される既定のクレームの 1 つ
• ユーザーの識別子として使用される
• 様々な形式 (Format) が用意されている
• UPN/E-Mail/X.509 Subject Name/…
Persistent Identifier/Transient Identifier など
• AD FS 2.0 の場合
• Name ID の Format を規定しない
• アプリケーションによって Format を要求するものが
ある
• 対処法
• AD FS 2.0 管理ツールでクレーム変換を定義する
108
(参考) Persistent ID と Transient ID
• 厳密なプライバシーが要求されるシステムで使用
• 誰がアクセスしているのかを 内部処理に隠ぺい
• 2 種類の Identity 形式
• Persistent (持続) :Account Linking
• Transient (一時)
:Pseudo-anonymous access
IDP の場合
RP の場合
Persistent (持続)
○
×
Transient (一時)
○
○
参考サイト
http://blogs.msdn.com/b/card/archive/2010/02/17/
name-identifiers-in-saml-assertions.aspx
109
相互連携のポイント~ CRL のチェック
CRL (Certificate Revocation List):証明書失効リスト
• AD FS 2.0 の場合
• パートナー側の証明書に CDP (CRL 配布ポイント)
Extension が付加されている場合、AD FS 2.0 は規定
で CRL のチェックを行う
• AD FS 2.0 は CA にアクセスできなければならない
• パートナーのプライベート CA にはアクセスできな
いため、チェックに失敗
※自己発行証明書には CDP Extension が無い
• 対処法
• AD FS 2.0 の CDP チェックを無効にする
set-ADFSClaimsProviderTrust –TargetName foo
–SigningCertificateRevocationCheck None
–EncryptionCertificateRevocationCheck None
110
(ご参考)
クレーム ベースのフェデレーションが実現する
Windows Azure と ID as a Service の連携
Azure 時代の ID 管理と高度認証
株式会社 野村総合研究所
DI ソリューション事業部
AD FS 2.0 と IDaaS の連携例
Windows Azure
WIF
SaaS A
(外部ID受入)
同期
信頼
Azure利用企業
のID管理を代行
WIF
SaaS B
(独自ID/PW発行)
AD FS 2.0
信頼
高度な認証
IDaaS(3 rd
信頼
112
同期
AD FS 2.0
独自
IdP A
IdP B
オンプレミス
ID管理
Party)
国内センタ
Azureアプリの
ID管理を代行
 Azure 上のアプリ開発では、いままで
よりも ID 管理や認証が悩みどころに
 WIF ベースのアプリ開発で、オンプレ
ミス /IDaaS の ID管理・認証を活用
ACS と IDaaS の連携例
•ACS を活用することで、非 WIF ベースの
アプリケーションでも様々な外部 IdP を
利用可能
Windows Azure
SaaS
A
SaaS
B
ACS v2 がでるまでは
IDaaS を信頼
国内センタ
信頼
高度な認証
ACS V2
信頼
信頼
信頼
外部クレーム情報の統合
IDaaS(3 rd Party)
mixi
AD FS 2.0
Yahoo
NTT
IdP A
Facebook
Twitter
オンプレミス
113
Google
複数の外部 IdP と
高度認証との組合せ
and more...
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should
not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,
IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION