フェデレーショナルなクレームベース ID モデルの適用

Download Report

Transcript フェデレーショナルなクレームベース ID モデルの適用

マイクロソフト株式会社
デベロッパー&プラットフォーム統括本部
田辺 茂也
http://blogs.technet.com/stanabe
「クレーム」ベースの ID モデルと
“Geneva”
“Geneva” のシナリオ
“Geneva” での変更点
開発のポイント
既存の ID システムとの連携
アイデンティティ (ID) とは
ユーザー名などの識別情報のセット
ほとんどのアプリケーションは
ID を利用している
ID 情報は、アプリケーションの動作の
重要な部分を決定する
そのユーザーが何をしてよいか
アプリケーションが、どのようにユーザーと
やりとりを行うか制御
アプリケーションは、それぞれの場面で
異なる ID 技術を使う必要がある
Windows ドメイン下では
Active Directory (Kerberos)
インターネットでは、ユーザ名とパスワード
組織間連携では、WS-Federation や
SAML (Security Assertion Markup Language)
すべての場面で共通に使える手法はないのか
クレームベースの ID により可能に
開発者、IT Pro 双方にメリット
トークンは、ID 情報を記述したもの
いくつかのクレームで構成
それぞれのクレームは、
トークン内の要素の情報を含む
トークンの
生成元を示し、
改ざんを防ぐ
トークン
クレーム 1
クレーム2
クレーム3
...
クレームn
デジタル署名
クレームの例
名前
グループ
年齢
ID プロバイダーは、
クレームを作成するオーソリティ
一般的な ID プロバイダーの例
社内では、会社 (人事、IT 部門など)
インターネットでは、自分自身の場合が多い
ID プロバイダーは、
STS: セキュリティ トークン サービスを運用
トークンを発行するサーバー
トークンの発行リクエストは WS-Trust 経由で受付
さまざまなフォーマットが利用可能
SAML フォーマットがよく使われている
ID プロバイダー
(IdP, STS)
連携
アプリケーション
(RP)
1. クレームを
要求
2. トークン
(クレーム) 取得
3. トークン
(クレーム) 送信
ユーザー
アプリケーション: ユーザーを特定するためにクレームを利用
ID プロバイダー: クレームを含むトークンを発行
連携: 信頼関係のもと、クレームが渡される
ID プロバイダー
2) 情報の取得
アカウント
属性情報
セキュリティ
トークン サービス
(STS)
1) 認証を行い
トークンを要求
3) トークンを作
成し送信
トークン
ブラウザー
クライアント
ユーザー
4) トークン内のクレームを利用
ID プロバイダー
アプリケーション
STS
ID
フレームワーク
2) トークン提出
トークン
トークン
1) トークン取得
ブラウザー
クライアント
ユーザー
3) トークンの
署名を調べ、
信頼する STS か
どうか判断
信頼済み
STS リスト
現在の多くのアプリケーションは、
単純な ID 情報しか得られない
ユーザー名など
それ以上の情報は問い合わせ
リモートデータベース (ディレクトリサービスなど)
ローカルデータベース
クレームベースの ID では、
それぞれのアプリケーションが
必要なクレームを要求
STS がクレームをトークンに記述
要求されたクレームのみを送信
ユーザーの特定
グループやロールの情報
パーソナライズ情報
ユーザーの表示名など
操作の許可、拒否
特定の情報へのアクセス
特定の機能の利用
操作の制限
購入上限の設定
ID プロバイダー側での設定も可能
5) トークン内のクレームを利用
ID プロバイダー
STS
STS
アプリケーション
ID
フレームワーク
STS
1) アプリケーションに
アクセスし、トークンの
条件を取得
トークン
3) 選択した
ID のトークンを
取得
4) トークンを
送信
トークン
ブラウザー
クライアント
ID セレクター
2) 条件を満たす
ID を選択
ユーザー
ID プロバイダー
5) トークン内のクレームを利用
“Geneva”
Server
STS
STS
アプリケーション
STS
“Geneva”
Framework
1) アプリケーションに
アクセスし、トークンの
条件を取得
トークン
3) 選択した
ID のトークンを
取得
ブラウザー
クライアント
CardSpace
“Geneva”
2) 条件を満たす
ID を選択
ユーザー
4) トークンを
送信
トークン
3つの ID テクノロジー
“Geneva” Server
Active Directory フェデレーション サービス (AD FS) の
次期バージョン
STS
Windows CardSpace “Geneva”
Windows CardSpace の次期バージョン
“Geneva” Framework
“Geneva” の目標は、クレームベースの
ID モデルを実用的にすること
企業 Microsoft Services Identity Backbone
社内
アプリケーション
Active
Directory
?
パートナー
Active
Directory
企業のネットワーク
境界は、消滅しつつ
ある
どうすれば、社内ア
プリケーションを社
員以外に提供し、利
用を拡大できるか
エンタープライズ
ID バックボーン
Microsoft Services Identity
Backbone
社内
アプリ
Active
Directory
“Geneva”
Framework
“Geneva”
Server
クレーム
“Geneva”
Server
Active
Directory
“Geneva” Framework
クレーム対応アプリケー
ションを作成するための
.NET ベースのフレーム
ワーク
“Geneva” Server
Active Directory と
統合された STS
Windows CardSpace に
対応
Windows CardSpace
“Geneva”
ユーザーのコントロール
下にある ID セレクター
より小さく、速く
エンタープライズ
ID バックボーン
Microsoft
Services Identity
Backbone
社内
アプリ
Active
Directory
“Geneva”
Server
Active
Directory
“Geneva”
Framework
“Geneva”
Server
Third Party
STS
User
Database
WS-Federation,
WS-Trust,
SAML 2.0 プロトコル
のサポート
上記プロトコル対応の
フェデレーションソフト
ウェア・サービスと相互
運用可能
Microsoft Services
Services Identity
ID バックボーン
Microsoft
Backbone
Microsoft
Federation
Gateway
“Geneva”
Server
Active
Directory
クラウド
アプリ
・
サービス
Microsoft Federation
Gateway は、
マイクロソフトの ID
バックボーンの重要な
サービス
Azure クラウドアプリ
ケーションや開発者サー
ビスへの橋渡しを行う
Third Party
STS
User
Database
一つのフェデレーション
で、さまざまなサービス
にアクセス可能
WS-Federation,
WS-Trust 準拠
Microsoft Services
Services Identity
ID バックボーン
Microsoft
Backbone
Windows
Live ID
コンシューマー
カスタム
ドメイン
“Geneva”
Server
Active
Directory
Microsoft
Federation
Gateway
クラウド
アプリ
・
サービス
Windows Live ID の
アカウントでも
Federation Gateway
経由で、クラウドア
プリにアクセス可能
Windows Live アドミ
ンセンターにより ID
管理のアウトソース
も可能
Third Party
STS
User
Database
自動管理用の API
カスタマイズ可能な
UX
Microsoft Services
Services Identity
ID バックボーン
Microsoft
Backbone
Windows
Live ID
コンシューマー
カスタム
ドメイン
Microsoft
Federation
Gateway
Microsoft
Services
Connector
“Geneva”
Server
Active
Directory
Active
Directory
クラウド
アプリ
・
サービス
Active Directory と
Microsoft Federation
Gateway とのフェデ
レーション
無償ダウンロード、
簡単なセットアップ
Third Party
STS
User
Database
1:1 の信頼ではな
く、ゲートウェイと
の
信頼
Windows CardSpace
をサポート
Microsoft Services
Services Identity
ID バックボーン
Microsoft
Backbone
アプリ
ケーション
Windows
Live ID
コンシューマー
カスタム
ドメイン
Microsoft
Federation
Gateway
Microsoft
Services
Connector
“Geneva”
Server
Active
Directory
Active
Directory
“Geneva”
Framework
Third Party
STS
User
Database
クレームベースの
アクセスにより、
さまざまな ID を
サポートする
アプリケーションを
作成可能
Microsoft Services
Services Identity
ID バックボーン
Microsoft
Backbone
Windows
Live ID
コンシューマー
カスタム
ドメイン
Microsoft
Federation
Gateway
Microsoft
Services
Connector
Active
Directory
アプリ
ケーション
Active
Directory
“Geneva”
Framework
クレーム対応の
アプリケーションは
一度作成すれば
どこにでも
ホスト可能
ID プロバイダーは
設定による選択で、
アプリケーションの
ロジックには
埋め込まれていない
クラウドへの移行、
オンプレミスへの
移行も容易
MicrosoftServices
ServicesIdentity
ID バックボーン
Microsoft
Backbone
Windows
Live ID
コンシューマー
カスタム
ドメイン
Microsoft
Federation
Gateway
.Net Access
Control
Service
クレームの用途は
ログインだけではない
.Net Access Control
Service: STS がアクセス
コントロールのための
トークンを発行
アクセスコントロールの
ロジックを
ルールセットに分解
Microsoft
Services
Connector
Active
Directory
“Geneva”
Server
Active
Directory
アプリ
ケーション
“Geneva”
Framework
ルールセットの管理
ポータルや API を提供
Microsoft Services ID バックボーン
Microsoft Services Identity Backbone
Microsoft Federation Gateway
アプリ
ケーション
Third Party
Framework
HealthVault
(OpenID)
Third Party
STS
User
Database
.Net Access
Control
Service
“Geneva”
Server
OpenID
プロバイダ
Active
Directory
さまざまなサービ
ス、ID プロバイダー
から、目的に適合す
るものを選択
シンプルな管理の
ためにゲートウェイ
を活用
アプリ
ケーション
“Geneva”
Framework
Microsoft Services ID バックボーン
Microsoft Services Identity Backbone
Windows
Live ID
コンシューマー
カスタム
ドメイン
Any STS
Active
Directory
ライトウェイトな
SSO も利用可能
Live Framework:
WebAuth
OpenID
Microsoft
Federation
Gateway
Web
アプリ
“Geneva”
Framework
Web
アプリ
Live
Framework
OpenID 対応
Web アプリ
Software
Services
ID プロバイダー
Live
ID
Microsoft
Federation
Gateway
“Geneva”
Server
.Net Access
Control
Service
Microsoft
Services
Connector
Active Directory
アプリケーション
(クラウドまたはオンプレミス)
Third
Party
Services
Third
Party
Servers
クレームを
要求
クレームを
送信
クレームを送信
必要なクレーム
ID セレクター(必要に応じて)
Windows CardSpace
“Geneva”
Live Framework
Third Party
Frameworks
信頼
クレーム取得
“Geneva”
Framework
サードパーティの
ID セレクター
現行の AD FS は
パッシブクライアント (ブラウザー) のみサポート
STS は未提供
WS-Federation のみサポート
“Geneva” Server では
アクティブ・パッシブクライアントを
サポート
STS を提供
WS-Federation と SAML 2.0 プロトコルを
サポート
信頼関係の管理性を向上
一部の設定を自動化
Windows CardSpace “Geneva” は
ID 選択の標準的な UI を提供
カードのメタファー
カードを選ぶことで ID (トークン) を選択
カードの実体は、インフォメーションカード
ID プロバイダーとの関連を示す XML ファイル
特定の ID のトークン発行を要求するために
必要な情報が含まれる
インフォメーションカードに含まれない情報
クレーム情報
STS の認証のための情報
Information Card Foundation を設立
マルチベンダーの業界団体
ボードメンバーに
Google, Microsoft, Novell, Oracle, and PayPal
Web サイトでは、標準アイコンにより
インフォメーションカードでのログインを
示す
Windows CardSpace “Geneva” は
.NET Framework とは別に単独提供
小さいインストーラー、速いインストール
Windows CardSpace “Geneva” では
利用に応じた最適化が可能
前回ログインに利用したカードを
提示できる
専用のデスクトップは使用しない
クレーム対応アプリケーションを
簡単に作成するためのフレームワーク
以前の名称は “Zermatt”
“Geneva” Framework でできること
トークンの署名の確認とクレームの抽出
クレームを扱うクラス
独自 STS の作成
…
必要なクレームを決める
識別子、属性など
クレームを扱うプログラムの作成
“Geneva” Framework の活用
クレームの取得元を選択
ソフトウェア: “Geneva” Server, サードパーティ
サービス: Microsoft Federation Gateway,
Windows Live ID, .Net Access Control Service,
サードパーティ
独自に STS を作成
ユーザーが利用可能な STS がない場合
Geneva claims provider の利用
Claim
Sample
Fill
IClaimsIdentity
ClaimType = “Name”
Sample
Fill
Value = “Bob”
Issuer = “WLID”
Subject
IClaimsIdentity
IClaimsPrincipal
IClaimsIdentity caller =
Thread.CurrentPrincipal.Identity
as IClaimsIdentity;
string Role = (from c in caller.Claims
where c.ClaimType == MyClaimTypes.Role
select c.Value).Single();
Active Directory “Geneva”
Domain Services Server
5) アプリ X、アプリ Y、
ユーザーに対する
ポリシーを確認
STS
X用
トークン
1) アプリ X 用
トークン取得
X用
トークン
4) アプリ Y 用
トークン要求
Y用
トークン
6) ポリシーに従って
アプリ Y 用トークンを発行
8) トークン内の
クレーム利用
7) トークン送信
ブラウザー
クライアント
X用
トークン
2) トークン送信
ユーザー
アプリ X
Y用
トークン
アプリ Y
“Geneva”
Framework
3) アプリケーション
にアクセスし、
トークンの要件取得
“Geneva”
Framework
Delegate
Delegate
Claim
Sample
Fill
IClaimsIdentity
ClaimType = “Name”
Sample
Fill
Claim
Sample
Fill
ClaimType = “Name”
Sample
Fill
IClaimsIdentity
IClaimsIdentity
Value = “Bob”
Issuer = “WLID”
Subject
IClaimsPrincipal
Value = “Server1”
Issuer = “MS STS”
Subject
クラウド
エンター
プライズ
アプリ
ISV アプリ
Azure Services Platform
Microsoft
Federation
Gateway
Microsoft
Services
Connector
ブラウザー
Office
アプリ
Live
Identity
Service
Employee
Windows
Live
Microsoft
Online
Live
Mesh
Microsoft
Dynamics
CRM Online
エンタープライズ
オンプレミス
Active
Directory
Exchange ISV アプリ SharePoint
ユーザーがリンクをクリック
- Microsoft Services Connector で認
証
Service Connector は
Active Directory で認証
Service Connector は
ログイントークンを発行し
Federation Gateway にリダイレクト
Federation Gateway は
トークンを確認し
クレームを変換
Federation Gateway は
サービストークンを発行し
サービスにリダイレクト
ユーザーがサービスにアクセス
ブラウザー
Office
デスクトップ
エンター
プライズ
アプリ
Microsoft
Services
Connector
Active
Directory
Microsoft
Federation
Gateway
クラウド
アプリ
サービス
Active Directory と Federation Gateway、
クラウドアプリ・サービスを接続
一度のフェデレーション設定で、
自動プロビジョニング
特定の CA 発行の SSL 証明書によりドメインの所有者を証明
ドメイン、サインインのエンドポイント署名鍵を登録
継続的なフェデレーションの管理タスクは自動化
エンター
プライズ
Microsoft
Services
Connector
Active
Directory
Microsoft
Federation
Gateway
クラウド
アプリ
サービス
フェデレーションのメリット
アプリ・サービスを、複数の組織に提供可能
ID をコピーしないため
シンプルな管理
セキュア
ユーザーはシングルサインオン
Federation Gateway / Services Connector のメリット
既存の ID インフラに変更を加えずに
クラウドサービスを活用・移行できる
Point-to-Point ではなく、Hub & Spoke のため
設定と管理がシンプル
セキュリティレベルの維持
クラウド用のアカウント、パスワード不要
クラウドでは、クレームベースの
ID モデルの活用を!
“Geneva” は、クレームと
ID のフェデレーションをサポートする、
各種技術を提供します
既存の ID システムを最大限に活用し、
便利なシステムとシンプルな管理を
両立させましょう!
© 2009 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.
“Geneva”
http://www.microsoft.com/geneva
Microsoft Services Connector
http://www.microsoft.com/servicesconnector
Microsoft Federation Gateway
http://msdn.microsoft.com/en-us/library/
cc287610.aspx
Now
H2 CY 2008
H1 CY 2009
H2 CY 2009
Beta 2
RTM
Software
“Geneva” Server
Microsoft Service Connector
“Geneva” Framework, CardSpace
Live Framework
Beta 1
Beta
CTP
RTM
Beta 1
Beta 2
RTM
In Production
Services
Live Identity Services
OpenID Beta
Microsoft Federation Gateway
In Production
.Net Access Control Service
CTP
OpenID
RTM
Refresh
Beta 1
“Geneva” と AD FS v1 (現行) との比較
Account Store
Attribute Store
Policy Store
AD FS1
“Geneva”
AD DS
Y
Y
AD LDS
Y
?
SQL db
N
N
3rd party LDAP
N
N
AD DS
Y
Y
AD LDS
Y
Y
SQL db
Code
?
3rd party LDAP
Code
?
SQL db
N
Y
AD/AD
LDS/LDAP
N
N
Flat file
Y
N
WS-Federation 1.0 (Passive Requestor Interop Profile)
WS-Federation 1.2 (Min Passive Requestor Subset)
AD FS1
“Geneva”
Y
Y
n/a
Y
 POST (push) Binding
Y
 wresultptr (pull) Binding
?
 Home Realm Discovery service
?
WS-Trust 1.3 ( aka Active Requestor Profile)
n/a
Y
 Issue
Y
 Issue “OnBehalfOf” (proxy support)
Y
 Issue “ActAs” (identity delegation)
Y
 Renew
?
 Validate
?
WS-SecurityPolicy 1.2
n/a
Y
AD FS1 “Geneva”
SAML 1.0/1.1 Web SSO Protocol
N
N
SAML 2.0 Web SSSO Protocols
n/a
Y
 IdP Lite & SP Lite Operational Modes
Y
• Web SSO, <AuthnRequest>, HTTP redirect
p1
• Web SSO, <Response>, HTTP POST
p1
• Identity Provider Discovery (cookie)
p1
• Web SSO, <Response>, HTTP Artifact
p2
• Artifact Resolution, SOAP
p2
• Single Logout (IdP-initiated) – HTTP redirect
p2
• Single Logout (SP-initiated) – HTTP redirect
p2
• Enhanced Client/Proxy SSO, PAOS (*)
p3
 GSA Profile (LA harmonized e-Gov Profile)
Y
AD FS1
“Geneva”
Y
Y
 Authentication & Attribute Statements
Y
Y
 Signed tokens
Y
Y
 Encrypted tokens
N
Y
n/a
Y
SAML 1.1 Tokens
SAML 2.0 tokens
 Authentication & Attribute Statements
Y
 Extensible claim type (any URI)
Y
 Signed tokens
Y
 Encrypted tokens
Y
 Proof tokens (symmetric/asymmetric keys)
Y
 Authentication Context
?
AD
FS1
Card Issuance
Token Issuance
Privacy
Personas
“Geneva”
Managed InfoCard provisioning for CardSpace
Y
Automated InfoCard versioning for CardSpace
?
CardSpace
Y
3rd Party Identity Selectors
Y
InfoCard Profile identity claim types
Y
Display tokens
Y
PPID claim
?
Range constrained values (e.g. Age > 21)
?
Non-auditing tokens (Audience hidden from STS)
Y
Multiple managed cards per AD account
Y
インフォメーションカードセレクタの
相互運用性
Windows CardSpace を利用
Internet Explorer 6/7/8
Firefox
Identity Selector
http://www.codeplex.com/IdentitySelector
カードの一元管理が可能、Windows のみ対応
独自のセレクターを利用
Higgins
http://www.eclipse.org/higgins/
Firefox, GTK, Cocoa, Eclipse RCP
Digital Me (Bandit Project)
http://www.bandit-project.org/index.php/DigitalMe
Firefox, SuSE Linux, Mac OSX
OpenInfoCard
http://code.google.com/p/openinfocard/
FireFox の組み込みセレクター
Xmldap.org のプロジェクト
Infocard Selector For Safari
http://www.hccp.org/safari-plug-in.html
Mac OSX
Azigo
http://www.azigo.com
AIR ベースのセレクター
カードはクラウドに保存
HTML, ASP.NET 2.0: http://self-issued.info/?p=18
“Geneva” Framework (旧称 “Zermatt”)
クレームを扱う共通フレームワーク
https://connect.microsoft.com/site/sitehome.aspx?SiteID=642
PHP (Zend):
http://www.codeplex.com/informationcardphp
Java: http://www.codeplex.com/informationcardjava
Ruby: http://www.codeplex.com/informationcardruby
C: http://www.codeplex.com/InformationCard
Python: http://code.google.com/p/py-self-issued-rp/
Higgins Project
Bandit Project
……
SAML Protocol
Web SSO &Circles of Trust
ライトウェイトな
URI ベースの ID
http://projectconcordia.org
WS-* ベースの通信
ユーザーセントリック