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