T1-307 鈴木章太郎 アーキテクトエバンジェリスト マイクロソフト株式会社 .NET Services 概要 Microsoft Identity Software + Services .NET アクセスコントロールサービス概要 .NET サービスバスとの関係 .NET ワークフローサービスとの関係 Microsoft SQL データサービスとの関係 リソース /サンプル・関連セッション他 .NET が持つ能力のクラウドへの 拡張 .NET Services を有効活用できれば、既存のあるい は他の方法よりはるかに楽にクラウドサービスの 実装が可能 現時点で3 つのサービスがあり、この後も、 後続が登場予定 .NET Service Bus – サービスの統合に必要な接続 性とメッセージングの基盤 .NET Workflow Service – 信頼性が高くスケーラブルなワークフロー .NET Access Control Service –フェデレーション 認証をベースとしたオーソライゼーション アプリケーション統合サービス アクセス コントロール ワークフロー サービス バス 複数の組織にわたり、 ユーザー ID を安全に保護 ビジネス ロジック/サービス インタラクションのモデル化及び実行 疎結合されたコンポジット アプリ ケーション間のメッセージ交換を実現 クレーム ベースの ID 管理 標準プロトコル (WS-Trust、WSFederation) ベースで、相互運用性 を実現 Web ページやサービス API による 管理 CardSpace、LiveID、ユーザー名/ パスワードのサポート XAML ベース ワークフロー向けの ランタイム実行環境 サービス オーケストレーションの 実現 Windows Workflow Foundation の 拡張 XAML ベース モデルをクラウドに アップロード可能 シンプルなイベントのパブリッ シュ/サブスクライブ メッセージングにおけるファイア ウォール対応 柔軟な接続モード オンプレミス アプリケーションへ の接続によるハイブリッド S+S シ ナリオの実現 Windows Communication Foundation の拡張 SQL データサービスとは クラウド データベース サービス 拡張性と柔軟性 開発者の俊敏性 リレーショナル クエリ BLOB (Binary Large OBject) XML ワイヤー形式 SOAP/REST のサポート データ パーティションによる スループット/拡張性の強化 トランザクションの一貫性を 確保 柔軟なデータ モデル (スキー マの強制なし) 信頼性とセキュリティ Microsoft SQL Server テクノロ ジで構築 認証/承認 バックアップ/地理的分散によ り事業継続性を確保 一つのアイデンティティモデル で、ユーザーにアイデンティティのコントロールを 可能にする Software 開発者の生産性拡充 Live Identity Service “Geneva” Server Microsoft Services Connector Active Directory Microsoft Federation Gateway Windows CardSpace “Geneva” 標準技術への準拠 .NET Access Control Service “Geneva” Framework Live Framework Claims-Based Access Services 選択の柔軟性 アイデンティティメタシステムとクレーム(申告)ベースモデル Software Services クレームプロバイダ(IP / STS) Live ID Microsoft Federation Gateway “Geneva” Server .NET Access Control Service Microsoft Services Connector 3rdパー ティ製 サーバー 3rdパー ティ製 サーバー クレーム 要求 クレーム 返送 Active Directory アプリケーション (RP) “Geneva” フレームワーク Live フレームワーク 3rd パーティ製 フレームワーク (In cloud or on-premises) リレーションシップ (WS-Security, WS-Federation, WS-Trust) クレーム取得 クレーム返送 (Requester / Client) アイデンティティセレクタ(適切な場所で) Windows CardSpace “Geneva” 3rd パーティ製 セレクタ クレーム要求 IP ( Identity Provider (Issuer) ): ユーザーのIDを発行するサイト 。 STS ( Security Token Issuing Service ): IP が持つ、オンラインでセキュリティトークンを発行 することのできるサービス。 RP ( Relying Parties ) : 情報の提示を求めるWebサイト、ターゲットアプリ ケーション。クライアントに対して、セキュリティ トークンの提示を要求する。 具体的には、利用できる IPの種類と、必要な Claim リスト(例えば、ユーザー 名と会社名、役職、年齢情報をくれ、等)を指定。 Requester( =Client ) : ユーザーのアプリケーション。Webブラウザ(HTTPク ライアント)、WPF/WCF アプリケーション(SOAPクラ イアント)等。 セキュリティトークン IP の STS から必要に応じ、その都度発行してもらう、 いわゆる身元証明情報。必要最小限の Claim のみが記 載された形で発行され、これを RP に提示することで、 RP に対し、身元証明を行う。 Claim ( クレーム、主張 ) Clientが送信する、ユーザーに関する情報項目のこと。 CardSpace にも記載可能。当然、すべての情報が必要 なわけではなく、一部の Claim のみで十分なことも多 い。 ユーザーID、会社情報、役職、所属、等。アク ション(メソッド)の実行権限も付与可能。 CardSpace ( 情報カードの一種 ) IP からセキュリティトークンを発行してもらうための カード。STSの URL、記載可能な Claim 一覧等が記載さ れ、自己発行カードも作成可能。 下記はいずれも、アクセスコントロールに おいて、同じアプローチを利用 Microsoft SQL データサービス (1) ユーザー名 & パスワードと、 (2) .NET アクセスコントロールサービスが生成 するトークン、のいずれも利用可能 .NET サービスバス .NET ワークフローサービス ポータル全体 注: .NET Service Bus と、.NET Workflow Service は、トー クンのプロセッシングにおいて共通のコードを利用 誰が 呼び出し元? 彼らは何が できるの? Live ID ユーザー XYZ ドメイン ユーザー 利用者 Access Control Service <何らかのID プロバイダ> 統合 オーケスト レーション Service Bus UI WF Data アプリケーション Store ポータル UIを持ち、アクセスコントロールのルールのコレク ションを作成したり管理したりする クライアント API アクセスコントロールのルールのコレクションを管理 するための具体的かつ実践的な方法を提供する サービス ( STS ) トークンを発行するホストされたサービス 開発者は、“Geneva”フレームワーク(WCFや、.NET Framework 3.5、その他 WS-Trust 1.3準拠のjava stackに も対応)を利用して、このサービスと相互にやり取り をする 3. アクセスコントロール 1. 利用者のためにアク セスコントロールの ルールを決める 6.クレーム をRelying Partyで チェック 0. Cert|Secret 公開鍵、証明書 の交換; 定期的にリフ レッシュ Relying Party (サービスバス、 アプリケー ション等) アクセスコント ロールサービス アカウント (Managed STS) ルールに基づいて、入力 クレームを出力クレーム にマッピングする 5. トークン付きの メッセージを送信 Requestor / Clinet リクエスタ (利用者) 1つの Access Control Service Account で 複数のアプリケーションや同一アプリケーションの別の部分 へのサービス提供ができる URI がアプリケーション毎なので個別の設定可能 Scope: http://foo.com Rule 1 Rule N Enc . Pref. & Settings Scope: http://bar.com Rule 1 Rule N Enc . Pref. & Settings .NET サービスバス, .NET ワークフローサービス、 そして SQL データサービス には、.NET アクセス コントロールサービスアカウントがある これらのアカウントは、スコープ(適用範囲)と 暗号化プリファレンスを含んでいる ルールは、新しい利用者アカウントが作成された ときに、自動的に追加される .NET サービスバスと .NET ワークフローサービス、 そして SQL データサービスでは、ルールは異なる NET サービスバスと 、.NET ワークフローサービス は、利用者アカウントにルールへのEdit権限を付与 している サインアップ時にアサインされる アクセスコントロールサービスには、現在、 下記のクレデンシャルストアがある ソリューション名 / ソリューションパスワード X.509 証明書 CardSpace v1 自己発行カード しかしアクセスコントロールサービスそれ 自体は、アイデンティティプロバイダにな る計画はない 将来のリリースで、クレデンシャルストア としては、Live Identity Services を使う予定 鈴木 章太郎 アーキテクトエバンジェリスト マイクロソフト株式会社 トークンのリクエスティングとプロセッシング Geneva Framework の利用が最もシンプル .NET Framework 3.5 のWCFの利用 いずれかの WS-Trust 1.3 スタックの利用 (Sun Metro, 等) .NET サービスバスと.NET ワークフローサービスも、 SDKの中に、トークンをリクエストするタイプを持つ ルールの管理 ルール管理のためのシンプルなAPI クライアントAPIを利用 or REST エンドポイントを利用 アクセスコントロールサービスポータルも利用できる .NET Services SDKにサンプルのソースコードあり スマートクライアントやWebサービスを対象と する E.g. WPF や WCF アプリケーションが典型例 そのようなアプリケーションのために: RST(Request for Security Token)の中のアクセスコ ントロールサービスにクレームを送信し、RSTR を relying party(対象アプリケーション)に送信する .NET Services SDKにサンプルがある インタラクションはWS-Trust 1.3に準拠 .NET Framework 3.5のWCF や、その他いくつかの Java スタックがサポートされる 各々のクレデンシャルタイプのためのエンドポイ ント 他IPからのトークンのためのエンドポイントでもある ホスト名 + ソリューション名 + クレデンシャル タイプ ユーザー名 / パスワード: http://accesscontrol.windows.net/sts/ {solutionName}/username_for_certificate X509 Certificate: http://accesscontrol.windows.net/sts/ {solutionName}/certificate Windows CardSpace: http://accesscontrol.windows.net/sts/ {solutionName}/issued_for_certificate 鈴木 章太郎 アーキテクトエバンジェリスト マイクロソフト株式会社 Calculator Service デモ アクティブリクエスタプロファイルシナリオ(WCFサービス) .NET Services SDK同梱 ローカルのサービスにあるメソッドをOutput Claimとして、アク セスコントロールサービス側でRule化し制御 ユーザー名 / パスワード利用とCardSpace利用の両シナリオ .NET Access Control Service 2 Relying Party (Calculator Service) Client 1 WS-Trust 1. ユーザー名 / パスワード 2. CardSpace Security Token Service 3 4 クライアントPC HTTPリダイレクトを認識できるクライアントを 対象とする E.g. ブラウザがその典型例 Web アプリケーションのために: アクセスコントロールサービスにリダイレクトし、返 送されたトークンをプロセッシングし、次いでセッ ションクッキーを発行する .NET サービスポータルがまさにこれを行っている アクセスコントロールサービスにより、Liveアイ デンティティサービスや、 “Geneva” サーバー と のフェデレーションが可能 さらに 3rd パーティの WS-Federation サポート製品が 登場予定 ホスト名+ ソリューション名 + フェデ レーションターゲット これもquery string パラメータを必要とする Live ID federation エンドポイント: https://accesscontrol.windows.net/passivests/ {solutionName}/LiveFederation.aspx General federation エンドポイント: https://accesscontrol.windows.net/passivests/ {solutionName}/Federation.aspx これら2つは将来のバージョンで統合予定 スコープ、Reply Toアドレス、アイデン ティティプロバイダのアドレス、を記述 例: wa=wsignin1.0&wtrealm={scope}&wreply={replyTo}& whr={identityProvider} “Geneva” Frameworkを使うことにより、 whr 等は自動的にハンドリングされる 現在のCTP以降でさらに機能が強化される予定 鈴木 章太郎 アーキテクトエバンジェリスト マイクロソフト株式会社 Contosowoodworking(木工用品店) Web サイト、WS-Federation 連携のデモ パッシブリクエスタプロファイルシナリオ(ASP.NET Webアプリ ケーション) Contosowoodworking Web サイトへのアクセスを、アクセスコン トロールサービスで制御 パワーツールと普通のツールを権限によって表示 / 非表示 WS-Federation .NET Access Control Service 2 Web ブラウザ Client Relying Party (Contosowoodworking) 1 6 Security Token Service 5 4 3 クライアントPC WS2007FederationHttpBinding は、 WCF スタッ クのための WS-Trust 1.3 実装 アクティブの場合 RST を アクセスコントロール サービス(STS)に送信し、次いで、トークン+ ペイ ロード を対象アプリケーション ( Relying party )に送 信する アクセスコントロールサービスの中のクレデン シャルストアを使うときには、当該 RST はソ リューションクレデンシャルを含んでいる .NET Services SDK の中に、ソリューション名 / パスワードと、CardSpaceのサンプルがある CardSpace を使うには、Visual Studio を使った “サービス参照の追加”か、svcutil で行う アクセスコントロールサービス開発者のための 最適なフレームワーク タイプが定義され、それによりトークンをリク エストしたりプロセスする このトークンにはアクセスコントロールサービストー クンを含む アクティブ・パッシブ両方のシナリオあり “Geneva” Framework SDK の一部として利用可能 Microsoft.IdentityModel.dll に利用できる殆どのタイプ が定義されており、これを使ってアクセスコントロー ルサービスのインタラクションが可能 NOTE: アクセスコントロールサービスは、このアセン ブリを使って作成されている 4 つのサービスから構成される : トークン発行者としてのSTS、ルール管理 サービス、ルール実行エンジン、ポータル STS と ルール管理サービスは public API を 持つ Portal STS Rule Mgmt Rule Processing Storage Data Model Security Token Service Security Token STS Service Custom Handlers, Authenticators, Policies Custom Handlers, Authenticators, Policies …… Custom Handlers, Authenticators, Policies … IDFXFramework “Geneva” IDFX WCF Front-End WS-Federation (Passive) WS-Trust (Active) Internet SOAP Client HTTP Client . NET サービスバスは、一つのネーミングを使用 して、リソースとエンドポイントを構造化 各利用者アカウントは、当該ネーミングの一部を、 ソリューション名をベースとして、割り当てる 各ソリューション名のネーミングは、.NET アク セスコントロールサービスの中のスコープである 当該ソリューション名のオーナーは、スコープの Edit権限を付与される Foo/ http://servicebus.windows.net/services/ Bar/ Baz/ .NET サービスバスがトークンに対して要求する のは : アクセスされているリソースのネーミングを含む Listen かつ/または Sendのアクションクレームを含む .NET サービスバスの 証明書により暗号化される トークンが提示されるまでに検証される 当該ソリューション名のスコープは、2つのルー ルでプロビジョニングされる : Username= Foo Action=Listen Username= Foo Action=Send Foo はこれらのルールを必要に応じて変更できる .NET サービス SDK には、トークンをリクエスト するためにWCFを拡張するタイプ群が含まれる スタンダードエンドポイントビヘイビア ソリューション名 / パスワード、X509、CardSpace、 Federation、等々. 下記のタイプを使ってアクセス可能 TransportClientEndpointBehavior type WS-Trust 1.3 準拠のWebサービススタックであれ ば、 .NET サービスバスとのインタラクションが 可能 (e.g., Sun Metro 1.3) 鈴木 章太郎 アーキテクトエバンジェリスト マイクロソフト株式会社 .NET ワークフローサービスは、ネーミングを 使って、リソースとエンドポイントを構造化 .NET サービスバスとほぼ同じモデル HTTP エンドポイントも含む Foo/ http://workflow.windows.net/workflowshttp/ Bar/ Baz/ Foo/ http://workflow.windows.net/workflows/ Bar/ Baz/ . NET ワークフローサービスがトークンに対して要求する のは : アクセスされているリソースのネーミングを含む Read/Write/Execute/Send の各アクションクレームを含む .NET ワークフローサービスの証明書により暗号化される トークンが提示されるまでに検証される 当該ソリューション名のスコープは、アクションルール でプロビジョニングされる : Read/Write/Execute/Send 必要に応じてこれらのルールは変更できる ワークフロー群は、通常のトークンのライ フタイムを超えて稼働可能 例 : 半年にわたって毎日, Foo’のワークフロー は、サービスバスにメッセージを送る必要が ある ワークフローは、長期間にわたり存続する Authentication (AuthN、認証) トークンを 使って、 Authorization (AuthZ、認可) トー クンを要求する 鈴木 章太郎 アーキテクトエバンジェリスト マイクロソフト株式会社 Access Control Service Controlled Authorities in SQL Server Data Services Rule 1 Rule 2 Scope 1 ptr Scope 2 ptr . . . Scope N ptr Scopes Foo Account Container Scope 1 Foo Rule Container 1 Scope 2 Foo Rule Container 2 . . . Scope N Foo Rule Container N SDS は2つの認証ユーザーを持っている: ユーザー名 / パスワードを管理 アクセスコントロールサービストークン SDSは、アクセスコントロールサービスのアカウ ントと1つのスコープを持つ 各々の.NET Servicesのアカウントにより、ルール が付加される アクセスコントロールサービスのユーザー名を、 UPNクレームにマップする Username=shotaro → [email protected] さらに深い統合が可能になっている 鈴木 章太郎 アーキテクトエバンジェリスト マイクロソフト株式会社 基本的には、アプリケーションの要求に応じて、カスタマ イズされるべき その上で共通のパターンとして : 1. 2. サービスアカウントを使って、 .NET サービスにアクセス、 AuthN ( 認証) / AuthZ ( 認可 )は独立して行う フェデレーション認証を使って、ユーザーにサービスにより支え られているドメインへの AuthN ( 認証) / AuthZ ( 認可 )を行う アプローチ1.は、固有のIDストアを使った既存のアプリ ケーションに近い Calculatorサービスのデモもこれに該当する アプローチ2.が最もフィットするのは、新しいアプリ ケーションの場合である フェデレーション認証のアプローチと推測 ユーザーのセットに対して新しいスコープ を作成 プロビジョン時間に作成された.NET サービス バスと、.NET ワークフローサービスのスコー プに従わせる Listen / Send / Execute 等をユーザーシナ リオに基づいて割り当てる 独自のユーザーのための認証プロセスにおい て、当該クライアント API を使う REST RST / RSTR のサポート アクセスコントロールの技術を広くリーチ するために、共通のリクエスト 現在、詳細を詰めているところ Federation Gateway のサポート クレデンシャルストアとしての Live ID の利用 Windows Azure 上へのホスティング カスタムポリシーのサポート T1-301 T1-302 T1-303 T1-304 T1-305 T1-306 T1-308 T1-201 T1-309 T1-310 T1-401 T1-402 T1-403 Windows Azure プログラミング Windows Azure ストレージサービス Windows Azure 管理機能 .NET Services 概要 .NET Services:サービスバスとアーキテクチャの詳解 .NET Services:ワークフローサービスによるクラウド サービスのオーケストレーション SQL Services 概要 Live Services 概要 Live Framework リソースモデルとリソースへのアクセス Live Framework アプリケーション開発 クラウドコンピューティングのエッセンス “Geneva”:フェデレーショナルなクレームベース ID モデルの適用 Web 2.0 スタイル サービスのアーキテクチャと実装 Azure Services Platform SDK Windows Azure SDK Windows Azure Tools for Visual Studio 2008 .NET Services SDK SQL Data Services SDK http://www.microsoft.com/azure/sdk.mspx http://portal.ex.azure.microsoft.com/sdk.aspx Geneva Framework SDK http://portal.ex.azure.microsoft.com/sdk.aspx https://connect.microsoft.com/site/sitehome.aspx?SiteID=642&wa =wsignin1.0 Azure Services Training Kit PDC Preview http://www.microsoft.com/azure/trainingkit.mspx Azure Services Management Tool http://code.msdn.microsoft.com/AzureManagementTools © 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.
© Copyright 2025 ExpyDoc