1 / 114

AD FS 2.0 の アーキテクチャと Windows Azure 連携の 実装 ~ AD FS 2.0 によるシングル サインオンの実現 2 ~

セッション ID : T3-304. AD FS 2.0 の アーキテクチャと Windows Azure 連携の 実装 ~ AD FS 2.0 によるシングル サインオンの実現 2 ~ . マイクロソフト株式会社 デベロッパー & プラットフォーム統括本部 エバンジェリスト 安納 順一 ( あんのう じゅんいち ). ご注意. コードをゴリゴリ書くセッションではありません 基本的な解説は「あまり」行いません AD FS とは クレーム ベース の 認証とは フェデレーションとは

maeve
Download Presentation

AD FS 2.0 の アーキテクチャと Windows Azure 連携の 実装 ~ AD FS 2.0 によるシングル サインオンの実現 2 ~

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. セッション ID:T3-304 AD FS 2.0 のアーキテクチャとWindows Azure 連携の実装~ AD FS 2.0 によるシングル サインオンの実現 2 ~ マイクロソフト株式会社 デベロッパー & プラットフォーム統括本部 エバンジェリスト 安納 順一 (あんのう じゅんいち)

  2. ご注意 • コードをゴリゴリ書くセッションではありません • 基本的な解説は「あまり」行いません • AD FS とは • クレーム ベースの認証とは • フェデレーションとは • Appendix に基本的な情報を掲載しておりますので参考にしてください • [復習]AD FS の基礎知識

  3. Identity はハイブリッドなテクノロジ • アーキテクチャが両者に影響 • 両者の「架け橋」となる役割が必要 インフラ担当 開発担当 Identity 設計 コード 構築 テスト 管理 仕様変更

  4. 混乱していませんか? ココをお話しします T3-304 T1-304 Windows Live ID platform AppFabric Access Control Service Microsoft Federation Gateway STS STS STS Active DirectoryFederation Service Active Directory

  5. セッションの目的 以下のテクノロジに関する解説とデモンストレーション AD FS 2.0 のアーキテクチャ AD FS 2.0 を使用した クラウド アプリケーションとの SSO AD FS 2.0と AppFabric ACS との相互運用 AD FS 2.0 と 他社製品 との相互運用 セッションのゴール [クラウド] + [Identity] 案件におけるアーキテクチャ決定に必要な事項を理解し、適切な設計と構築が行える。または、指示を与えることができるようになる。 セッションの目的とゴールSessionObjectives and Takeaways

  6. アジェンダ • 第 1 章 AD FS 2.0 のアーキテクチャ • AD FS 2.0 の内部動作について理解し、インフラ担当者と開発者の作業範囲を把握しましょう • 第 2 章 Windows Azure platformAppFabricAccess Control Service のアーキテクチャ • AppFabric ACS のアーキテクチャを理解し、「できること」と「できないこと」を把握しましょう • 第 3 章 AD FS 2.0 の相互運用性 • AD FS 2.0 が実装している SAML 2.0 の仕様を理解し、他ベンダーの製品やサービスとの相互運用性の可能性について理解しましょう

  7. 第 1 章AD FS 2.0 のアーキテクチャ [復習] STS について WIFアプリケーションとの連携 クレーム パイプライン

  8. STS (Security Token Service) の役割 アクセス • セキュリティトークンの発行と管理 • クラウド アプリケーションとオンプレミスの架け橋 信頼 信頼 ACS アクセス STS 信頼 トークン 信頼できるかどうかはそれぞれのアーキテクチャに依存する 信頼 STS トークン AD DS AD FS

  9. 3 種類の STS(Security Token Service) T1-304 【MFG】 【ACS】 【AD FS 2.0】 • STS により「使用目的」と「出来ること」が異なる Microsoft Online Services 用に用意された STS クラウド上に 用意された STS 高機能な STS オンプレミスに配備 MFG ACS AD FS 2.0 AD FS 2.0 AD FS 2.0 AD FS2.0 any IdPs any IdPs MFG:Microsoft Federation Gateway ACS : Windows Azure platform AppFabricAccess Control Service 信頼

  10. WIF アプリケーションとの連携 クラウド上に Identity 情報を用意せずに、クレームによるアクセス承認が可能 7 WIF 信頼 クラウド オンプレミス AD DS AD FS2.0 3 8 5 4 6 2 1 WIF:Windows Identity Foundation

  11. WS-Federation (Passive SSO) の流れ • オンプレミスの AD DS にログオン依頼 • AD DS からクレデンシャルが送信されクライアントに保存 ------------ • Windows Azure 上のアプリケーションにアクセス • クレーム ポリシーをアプリケーションから受け取り、STS(AD FS 2.0) にリダイレクト • 属性ストアである AD DS からクレームを収集 • 集めたクレームに署名をしてセキュリティトークンを生成し、Windows Azure アプリケーションに送信 • アプリケーションはセキュリティトークンを受け取り、Windows Identity Foundation(WIF) を使用してクレームを取り出し、評価する • 画面がブラウザーに送られる

  12. ITPRO の方へ 開発者に渡すべき情報は何なのか?について理解しましょう WIF アクセス クラウド 信頼 オンプレミス AD DS AD FS2.0 トークン WIF:Windows Identity Foundation

  13. 「信頼」とは? • 物理的には • メタデータ/証明書/暗号化キーを事前に交換 • お互いの「すり替わり」を防止 • データの横取りを防止 IdP/CP RP/SP 信頼 Metadata Metadata URI URI • 精神的には • IdP 側 の Identity/Role 管理責任を信頼 • RP 側の クレーム管理責任を信頼

  14. 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 ClaimType Claim Value Claim Claim Issuer Claim OriginalIssuer ValueType subject

  16. アプリケーション作成時の留意点 • 空の属性はクレームに含まれない • ゆえにトークンにも含まれない • 安易に「既定値」を使用するととんでもないことに! 氏名 = 安納 順一 IdP 会社名 = マイクロソフト株式会社 役職= (空) RP 氏名 = 安納 順一 会社名 = マイクロソフト株式会社

  17. WIF クラウド 信頼 オンプレミス AD DS AD FS2.0 Dev の方へ AD FS からどこまで精度の高い情報が得られるのかを理解しましょう WIF:Windows Identity Foundation

  18. 用語について 基本的に、日本語 UI に沿った用語を使用します。 が…ちょっとアレなところもあるので、以下の対応票を参考にしてください。

  19. AD FS 2.0 ~クレーム パイプライン 証明書利用者 (RP) 要求プロバイダー/属性ストア トークン ② 承認する ③ 発行する ① 受付ける 受け 付け 変換 規則 output input 発行 承認 規則 発行 変換 規則 input output output input OK/ NG switch 要求プロバイダー信頼 (Claims Provider Trusts) 証明書利用者信頼 (Relying Party) 要求規則 (Claim Rule)

  20. 要求規則 (Claim Rule) • 入力された情報をルール (規則) に沿って処理し出力する • 処理されたクレームは既定のパイプラインを通る 要求規則 入力方向の要求 他の要求 プロバイダー スルー LDAP 属性 変換 出力 AD DS AD LDS LDAP メンバーシップ フィルター SQL Server その他 カスタム クレーム

  21. 要求規則 の処理プロセス クレーム 要求規則セット 要求規則1 発行 条件 Input Claim Set 要求規則2 OutputClaim Set 要求規則 n トークン

  22. 要求規則テンプレート 要求規則を作成するためのテンプレート 作成した要求規則は1つの IdP/RP にのみ関連付けられる • [LDAP 属性を要求として送信] • [グループ メンバーシップを要求として送信] • [入力方向の要求を変換] • [入力方向の要求をパススルーまたはフィルター処理] • [カスタム規則を使用して要求を送信] • [入力方向の要求に基づいてユーザーを許可または拒否] • [すべてのユーザーを許可]

  23. カスタム規則の定義 • テンプレートに用意されていないルールは自作することができる • 「要求規則言語」を使用する 条件部 発行部 条件文 1 True => 発行文 条件文 2 && 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/identity/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 FS2.0 を使用すると 【利用者】 オンプレミスの Identity でクラウド上のアプリケーションに Single Sign-Onできる 【ITPRO】 クラウド アプリ用の Identity を個別に管理する必要が無い ※今まで通り Active Directory で! 【開発者】 アプリケーションは ID/ロール管理から解放されるため、Identity 関連のビジネス ロジック変更に影響を受けない 企業間の相互運用にも AD FS 2.0

  26. 進化が楽しみなもう1つの STS 第 2 章AppFabric ACS のアーキテクチャ Windows Azureplatform の STS として どのような役割を担うのか

  27. Windows Azure platformAppFabricAccess ControlServiceV1 • RESTfulサービスに特化したシンプルな RP/SP 用STS • プロトコル:OAuth WRAP • トークン:SAML 1.1,SAML 2.0,SWT 道路の混雑状況を提供するサービス 問合せ 問合せ 返答 返答 ユーザー アプリ ユーザー アプリ

  28. Windows Azure platformAppFabricAccess ControlServiceV1 • RESTfulサービスに特化したシンプルな RP/SP 用STS • プロトコル:OAuth WRAP • トークン:SAML 1.1,SAML 2.0,SWT platform Relying Party AppFabric Access Control Service 信頼 STS REST 信頼 ③ トークン ②トークン Service Bus ① 認証 ④ 結果 セキュリティ キー or SAML 1.1/2.0トークン or SWT

  29. AD FS 2.0 と ACS V1 の違い AD FS 2.0 の替わりにはなれないことに注意

  30. ACS を 企業内 AD との SSO に使用する ACS では Passive SSO がサポートされていないことに注意 9 信頼 ACS WRAP REST Service 5 WS-Trust クラウド 信頼 8 オンプレミス 6 4 10 AD DS AD FS2.0 1 7 2 3 クライアント アプリケーション

  31. 処理の流れ • クライアント アプリケーションが AD FS 2.0 にトークン発行を依頼 • AD DS からクレームを収集 • AD FS 2.0 から SAML 1.1 トークン発行 • トークンを ACS に送信 • ACS は受け取った SAML 1.1 トークンをルールに沿って検証 • SWT を生成し、クライアントに発行 • クライアント アプリケーションは受け取った SWT を分解し、正しい ACS から発行されたものか等を検証 • 問題なければ HTTPAuthorization ヘッダーに SWT を埋め込み、REST サービスにPOST • REST サービスは受け取った SWT を分解してロールを検証 • ロールが正しければサービスを実行

  32. ACS のトークン発行条件 (認証) POST /WRAPv0.8/ HTTP/1.1 Host:<NameSpace>.accesscontrol.windows.netapplies_to=http%3A%2F%2Fadatum.com%2Fservices%2F&wrap_name=adatumcustomer1&wrap_password=5znwNTZDYC39dqhFOTDtnaikd1hiuRa4XaAj3Y9kJhQ%3D • セキュリティ キー • AD FS2.0SAML 1.1/2.0トークン • SWT ・・ applies_to=http%3A%2F%2Fadatum.com%2Fservices%2F&wrap_SAML=<…SAML Bearer Token…> ・・ applies_to=http%3A%2F%2Fadatum.com%2Fservices%2F&wrap_SWT=<…Simple Web Token…>

  33. ACS の構成情報 IdP/CP RP/SP AD FS 2.0 AppFabric ACS AD DS Application REST Service Namespace 信頼 Key 信頼 Scope Issuer クライアント アプリケーション Rule SAML 1.1/2.0 トークン InClaim OutClaim SWT

  34. SWT ~ Simple Web Token • ACS から発行されたトークンは検証後、HTTPAuthorization ヘッダーに格納して RESTService に POST する role=Admin%2cUser&customerName=Contoso%20Corporation&Issuer=https%3a%2f%2fmyservice.accesscontrol.windows.net%2f&Audience=http%3a%2f%2flocalhost%2fmyservice&ExpiresOn=1255912922&HMACSHA256=yuVO%2fwc58%2ftYP36%2fDM1mS%2fHr0hswpsGTWwgfvAbpL64%3d Claim 1 Claim 2 Key Claim n Issure Audience ExpiresOn HMACHA256 Hash

  35. アプリケーション側の対応 クライアント アプリケーション • AD FS2.0 に SAML 1.1/2.0 クレームの発行を依頼 • ACS に SAML 1.1/2.0 クレームを送信、SWT を受け取る • SWT 内の 4つの主要クレームを検証する • 署名 :HMACHA256 • 発行者 : Issuer • 発行先 : Audience(==applies_to) • 有効期限: ExpiresOn • SWT を Authorization ヘッダーに格納して POST AD FS 2.0 REST サービス REST サービス • HTTPAuthorization ヘッダーからクレームを直接取り出す • ロールを検証しクライアント アプリケーションにアクセス許可を与える

  36. 第 2 章のまとめ • クラウド上に用意された STS(ACS) により、[オンプレミス]-[クラウド] のフェデレーションを実現 • ACS は発展中です • 現時点で AD FS2.0 とのフェデレーションが可能 • V2 でサポート予定の機能 • 主要 IdP とのフェデレーション信頼 • AD FS 2.0(対応済) • Live ID, Facebook,Yahoo!,Google • 主要プロトコルの実装 • WS-Trust, WS-FederationOpenID • IdP の選択画面とそのカスタマイズ Passive SSO には未対応

  37. 第 3 章AD FS 2.0 の相互運用性 AD FS 2.0vs. SAML 2.0

  38. 相互運用性 を考えるにあたり 「相互運用」する箇所を明確にする IdP/CP RP/SP STS サービス API 認証サービス プロトコル/トークン形式 プロトコル トークン形式 プロトコル トークン形式 STS の仕様 サービス STS API 属性ストア サービス API

  39. 実装済 相互運用の例 予定 プロトコルとトークンが一致していても、 相互運用には連携相手の「意向 (戦略)」による (場合がある) IdP/CP RP/SP WS-Fed. Azure App AD DS AD FS 2.0 WIF Azure App ACS OAuthWRAP WLID MFG MSO MFG+ WLID WS-Trust Shibboleth OpenLDAP AD FS IIS SAML 2.0 SAML 2.0 対応製品 SAML 2.0 対応製品 OAuth OpenID Provider (OP) OpenID RP OpenID MSO: Microsoft Online Services

  40. 用語の違い ※ 1ADFS1.0 では Account Partner と呼んでいた ※ 2ADFS1.0 では Resource Partner と呼んでいた

  41. SAML 2.0 対応製品との相互運用性 • AD FS 2.0 をサポートしている OS • Windows Server 2008/R2 • 検証済み SAML 2.0 相互運用性パートナー • EntrustIdentityGuard Federation Module 9.2, GetAccess8.0 • IBMTivoli Federated Identity Manager (TFIM) 6.2 • Novell Access Manager 3.1 • Ping Identity PingFederate v6.1 • SAP NetWeaverIdentity Management 7.2 • Siemens DirXAccess V8.1 • AD FS 2.0 がサポートする SAML 2.0 操作モード • IdP Lite, SP Lite, eGov Profile 1.5 重要

  42. SAML2.0 プロファイルと操作モード~ OASISCriteria ADFS2 ADFS2

  43. 相互運用のポイント 今回は ここを見てみましょう • Metadata の考慮 • 属性のフォーマット • Name ID • クレームの暗号化 • 署名 • CRL のチェック Appendix を ご覧ください

  44. 相互運用のポイント~ Metadata • AD FS 2.0 の場合 • Metadata には WS-Trust/WS-Federation に関する記述が存在する • パートナー側への読み込み時にエラーとなることがある • 対処法 • WS-Trust/WS-Federation に関する記載を削除する • <RoleDescriptorxsi:type="fed:ApplicationServiceType“ ~</RoleDescriptor> • <RoleDescriptorxsi: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. まとめ

  48. まとめ シングル サインオン実現の「カギ」は信頼関係です • マイクロソフトの重点課題です • 「知っていること」==「強み」です • 「知っている人」がプロジェクトを操れます • まずは社内ディレクトリ サービスの整備から 3つのテクノロジの進化がハイブリッド環境を支えます • AD FS2.0 • Windows Azure AppFabric Access Control Service • Microsoft Federation Gateway Interoperability は、

  49. 関連セッション 終了御礼 開発 インフラ T1-304Day115:20 ~ 16:30 次期 Microsoft Online Services の ID およびアクセス管理 ~ AD FS 2.0 によるシングル サインオンの実現 1 ~ T3-302Day316:50 ~ 18:00 ポリシー ベースで ID 管理を実現する! ~ Forefront Identity Manager 2010 実践的構築手法 ~ T1-404 Day2 15:20 ~ 16:30 Windows Azure platform AppFabricサービス バスにおける 設計パターン、ベスト プラクティスおよびテクニック BOF-09Day310:55 ~12:05 Silverlight と WIF (Windows Identity Foundation) の アプリケーション連携 終了御礼 開発 インフラ インフラ 開発 インフラ 開発

More Related