AppFabric ACS V2 による SSO

3,272 views

Published on

2011/3/11 に開催したセミナー資料です。AppFabric ACS V2 を使用したシングルサインオン環境の構築について、アーキテクチャと構築手順を詳しく解説しています。
セミナーは地震の影響で中断しましたが、再開催される予定です。

Published in: Technology
1 Comment
2 Likes
Statistics
Notes
  • ritakoneh@hotmail.co.uk
    Hei min nye venn
    Mitt navn er rita jeg så profilen din på (www.slideshare.net) og jeg elsker det jeg tror vi kan klikke så kan jeg vil gjerne at du skal email meg tilbake gjennom e-postadressen min slik: slik at jeg kan fortalt deg mer om meg og gi deg min søte bildet slik at du kan kjenne meg, skal ok.
    Venter å se dine herlige svar snarest.
    Miss rita ritakoneh@hotmail.co.uk

    ....................................................................................................................................

    ritakoneh@hotmail.co.uk
    Hello My New friend
    My name is rita i saw your profile at(www.slideshare.net) and i love it i think we can click so please i will like you to email me back through my email address thus: so that i can told you more about me and give you my sweet picture so that you can know me will ok.
    Awaiting to see your lovely reply soonest.
    Miss rita ritakoneh@hotmail.co.uk
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
3,272
On SlideShare
0
From Embeds
0
Number of Embeds
42
Actions
Shares
0
Downloads
66
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

AppFabric ACS V2 による SSO

  1. 1. Windows Azure Platform シングルサインオン シリーズ その2<br />Windows Azure AppFabricAccess Control Service V2によるシングル サインオン システムの構築<br />第1.0版<br />2011年3月11日<br />日本マイクロソフト株式会社<br />エバンジェリスト<br />安納 順一<br />http://blogs.technet.com/junichia/<br />Twitter @junichia<br />
  2. 2. 本日の予定<br />13:30 - 16:30 「Windows Azure AppFabric ACS V2で構築する シングルサインオンシステム」マイクロソフト 安納 順一<br />16:45 - 17:30「「ID 管理?あ~認証の話ね」という人に向けた話」 MVP 富士榮 尚寛 氏<br />17:30 - 18:00 ライトニングトーク<br />18:00 - 19:00 懇親会<br />
  3. 3. Cloud TechCenter<br />インフラ担当者のためのクラウド情報サイト<br />http://technet.microsoft.com/ja-jp/cloud/<br />
  4. 4. ご注意<br />本セッションの情報はベータ版の機能をもとにしています<br />正式なリリース時には変更される可能性がありますので<br />ご了承ください<br />Windows Azure AppFabirc ACS V2 は 2011年上半期中にリリースされる予定です<br />
  5. 5. 本日のテーマと内容<br />ハイブリッドクラウドを支えるテクノロジーの1つ、AppFabric Access Control Service の用途と操作方法について理解しましょう<br />Windows Azure AppFabric ACS V2(プレビュー版)を使用して、Windows Azure 上に展開した アプリケーション への シングルサインオン を構成します。<br />AppFabric ACS の役割を理解する<br />クレームを認識するアプリケーションの作成<br />アプリケーションをWindowsAzure 上に展開<br />AppFabricACSV2 のセットアップおよび環境設定<br />長丁場ですが、根性でのりきりましょう!<br />
  6. 6. Agenda<br />マイクロソフトのハイブリッドクラウドシナリオ<br />クレームと Identity 連携<br />Windows AzureAppFabric ACS の役割<br />これから構築する環境について<br />AppFabric ACS ラボサイトの準備<br />クレーム対応アプリケーションの作成<br />Identity Provider との連携<br /><ul><li>AD FS 2.0 との連携
  7. 7. Windows Live ID との連携
  8. 8. Google との連携
  9. 9. Facebook との連携</li></ul>まとめ<br />
  10. 10. マイクロソフトのハイブリッド クラウド シナリオ<br />
  11. 11. クラウドには萌えがいっぱい<br /><ul><li>整然と並んだサーバー群
  12. 12. 暗闇に妖しくひかる LED
  13. 13. クールなケーブルタッピング
  14. 14. はたらく自動車::</li></ul>萌えるわぁ<br />
  15. 15. 真の”萌え”は…ハードウェア投資 ‘0’ で得られる高可用性<br />障害対応<br /><ul><li>故障したハードウェアの自動切り替え
  16. 16. 自動複製によるデータ保護
  17. 17. ネットワークロードバランスの自動構成</li></ul>環境変化への迅速な対応<br /><ul><li>容易なスケールアウト、スケールイン
  18. 18. ネットワークの自動構成</li></ul>ノンストップでのメンテナンス<br /><ul><li>インスタンスを順次停止してメンテナンスすることにより全体としてのサービス停止を防ぐ</li></li></ul><li>既存システムとの統合<br />すべてがクラウドで動くわけではない<br />新しいクラウドアプリとオンプレミスを結合しなければならない<br />クラウド上でのビジネスプロセスの表現<br />使用中のワークフローエンジンがクラウド上に用意されていない<br />クラウドへの移行が面倒<br />既存方式やテクノロジーを、あまり変えたくない  <br />クラウドアプリの監視が面倒くさい<br />でも…困った現実もある…<br />
  19. 19. 3つの選択肢<br />全てパブリッククラウド<br />ハイブリッド<br />全てオンプレミス<br />一部をクラウドに移行して両者の良いとこ取り<br />移行コストが問題<br />従来と変わらない運用<br />
  20. 20. 理想的なインフラストラクチャー<br />全ての基盤が “1つの” システムとして協調動作<br />ホスター<br />パブリック <br />クラウド<br />Secure CloudFederation<br />プライベートクラウド<br />企業内システム<br />
  21. 21. Secure Cloud Federation<br />クラウド<br />オンプレミス<br />データ同期<br />~ SQL Azure Data Sync ~<br />アプリケーション間通信<br />~ AppFabric Service Bus ~<br />今日のテーマ<br />セキュリティ<br />~ AD FS 2.0 & AppFabric ACS ~<br />仮想ネットワーク<br />~ Windows Azure Connect ~<br />
  22. 22. クレームと Identity 連携<br />おなじみのはなしですが…<br />
  23. 23. ID を使用する環境<br />アプリケーション在るところ「Identity」在り<br />企業全体<br />クラウド<br />企業:クラウド<br />企業間<br />自宅 <br />企業:クラウド<br />企業全体<br />組織内<br />組織間<br />組織内<br />
  24. 24. 予測される ID 管理の問題点<br />見えない利用者の Identity 管理/認証/承認<br />異なる認証方式の相互運用<br />ディレクトリサービスの設置が困難<br />クレームベース セキュリティ<br />フェデレーション セキュリティ モデル<br />
  25. 25. クレームベースセキュリティの例~入国審査<br />信頼<br />米国政府<br />日本国政府<br />本人<br /><ul><li>顔
  26. 26. 指紋</li></ul>発行<br />信頼<br />入国<br />出国<br />空港<br />健保番号<br />/免許証番号<br />/住民票<br />ビザ<br /><ul><li>滞在可能期間</li></ul>入国申請書<br /><ul><li>滞在期間
  27. 27. 滞在先</li></ul>パスポート<br /><ul><li>発行国
  28. 28. 氏名
  29. 29. 有効期限
  30. 30. 旅券番号
  31. 31. 写真
  32. 32. 出国印</li></ul>パスポート<br />・<br />・<br />
  33. 33. クレームベース セキュリティ モデル<br />クレーム<br />プロバイダー<br />リライング <br />パーティ<br />信頼<br />米国政府<br />日本国政府<br />オーソリティ<br />セキュリティ トークン<br />本人<br /><ul><li>顔
  34. 34. 指紋</li></ul>発行<br />信頼<br />サブジェクト<br />クレーム<br />クレーム<br />入国<br />出国<br />リソース<br />空港<br />健保番号<br />/免許証番号<br />/住民票<br />ビザ<br /><ul><li>滞在期間</li></ul>クレーム<br />資格情報<br />入国申請書<br /><ul><li>滞在期間
  35. 35. 滞在先</li></ul>クレーム<br />パスポート<br /><ul><li>発行国
  36. 36. 氏名
  37. 37. 有効期限
  38. 38. 旅券番号
  39. 39. 写真
  40. 40. 出国印</li></ul>クレーム<br />クレーム<br />クレーム<br />パスポート<br />・<br />・<br />クレーム<br />署名<br />クレーム<br />クレーム<br />クレーム<br />クレーム<br />
  41. 41. クレーム(主張)とは<br />アプリケーションに渡すユーザー自身の属性<br />アクセス承認に使用される<br />ユーザー ID<br />年齢<br />資格情報(認証結果)<br />住所<br />メール アドレス<br />性別<br />役職<br />言語<br />所属部門<br />趣味/趣向<br />所属企業<br />会員情報<br />専門分野<br />
  42. 42. セキュリティ トークン<br />パッケージ化されたクレーム<br />発行者の署名によって信頼性を担保<br />発行元の STS ( Security Token Service ) が生成する<br />セキュリティトークン<br />クレーム 1<br />クレーム 2<br />クレーム n<br />クレームの<br />発行元による<br />署名<br />
  43. 43. クレームベース セキュリティを使用した Identity 連携(フェデレーション)と SSO の実現<br /><ul><li>利用者は事前に 「認証機関」で認証を済ませている
  44. 44. 「サービスプロバイダー」側のアプリケーションは 「認証機関」が発行したトークンをベースにアクセス権を決定する(再認証は行わない)</li></ul>サービスプロバイダーは 認証機関を信頼している<br />認証機関<br />サービスプロバイダー<br />⑤アクセス承認<br />①証明依頼<br />④ トークン解析/アクセス権決定<br />③Token提示<br />②本人証明<br />Security<br />Token<br />Users<br />Users<br />利用者<br />④ID と ID を対応付ける<br />
  45. 45. Identity 連携(フェデレーション)の基本構成<br /><ul><li>認証機関(IdP/CP)とサービスプロバイダー(RP/SP)は トークンを処理するためのサービスを持っている(セキュリティトークンサービス)
  46. 46. トークンは「セキュリティ トークン サービス(STS)」によって発行される
  47. 47. トークンに格納するクレームは「クレームストア」に格納されている</li></ul>RP/SP は CP/IdPを信頼している<br />IdP/CP<br />RP/SP<br />⑤アクセス承認<br />①証明依頼<br />③Token提示<br />②本人証明<br />Security<br />Token<br />セキュリティ<br />トークン<br />サービス<br />クレーム<br />ストア<br />セキュリティ<br />トークン<br />サービス<br />利用者<br />IdP:Identity Provider<br />CP:Claim Provider<br />RP:Relying Party<br />SP:Service Provider<br />
  48. 48. Windows AzureAppFabricAccess Control Service の役割<br />
  49. 49. クラウド アプリケーションのアクセス管理をどうするか?<br />アプリケーション側で複数の認証方式を吸収しなければならない<br />Google<br />Windows Live<br />Facebook<br />OpenID<br />
  50. 50. 選択肢はさまざまあるけど。。。<br />SQL Azure にユーザー DB を作成する<br />Anonymous アクセス<br />同期<br />WELCOME!<br />同期<br />同期<br />メタデータ<br />Windows Azure Connect を使用<br />AD FS 2.0 を使用する<br />Active Directory Domain<br />
  51. 51. 複数の組織/不特定多数のユーザーに対応できるか?<br />SQL Azure にユーザー DB を作成する<br />Anonymousアクセス<br />同期<br />WELCOME!<br />同期<br />同期<br />メタデータ<br />Windows Azure Connect を使用<br />AD FS 2.0 を使用する<br />Active Directory Domain<br />
  52. 52. 必要なのはクラウド上の STS<br />AppFabricACSV2 が複数のIdPを吸収する<br />AppFabric ACSV2<br />Google<br />アプリケーションは<br />クレーム対応しておけばよい<br />Windows Live<br />Facebook<br />OpenID<br />
  53. 53. Windows Azure AppFabricAccess Control Service<br />クラウド上に用意された STS<br />アプリケーションのコードを変更することなく、新たな Identity Provider との連携を実装することができる<br />サポートされているプロトコル<br /><ul><li>OAuth WRAP 2.0
  54. 54. WS-Federation
  55. 55. WS-Trust
  56. 56. OAuth 2.0 (Draft 10)
  57. 57. OpenID 2.0</li></ul>トークンフォーマット<br /><ul><li>Simple Web Token(SWT)
  58. 58. SAML 1.1/2.0</li></ul>既成の Identity Provider との Passive な連携<br /><ul><li>Windows Live ID/ Google/ Facebool/ Yahoo!(.com)/ OpenID
  59. 59. Active Directory Federation Service 2.0</li></ul>V2<br />V2<br />V2<br />V2<br />V2<br />
  60. 60. Windows Azure AppFabricAccess ControlServiceV1の用途<br />RESTWEB サービスに「アクセス制御」を実装する<br />(例)道路の混雑状況を提供するサービス<br />問合せ<br />問合せ<br />返答<br />返答<br />誰でもアクセスできてしまう<br />ユーザー<br />アプリ<br />ユーザー<br />アプリ<br />
  61. 61. Windows Azure AppFabricAccess ControlServiceV1の用途<br />アプリケーションに認証機能を実装することなく、アクセス制御を実現<br />Relying Party<br />(例)道路の混雑状況を提供するサービス<br />信頼<br />AppFabric<br />STS<br />Access Control Service<br />REST<br />③ トークン<br />②トークン<br />① 認証<br />④ 結果<br />セキュリティ キー<br />or<br />SAML 1.1/2.0トークン<br />or<br />SWT<br />ユーザー<br />アプリ<br />※ごめんなさい、お手元の資料と<br /> ちょっとだけ絵がかわっています<br />
  62. 62. ACSV1 を 企業内 AD との SSO に使用する<br />ACS では Passive SSO がサポートされていないことに注意<br />9<br />信頼<br />ACS<br />WRAP<br />REST<br />Service<br />5<br />WS-Trust<br />クラウド<br />信頼<br />8<br />オンプレミス<br />6<br />4<br />10<br />AD DS<br />AD FS2.0<br />1<br />7<br />2<br />3<br />クライアント<br />アプリケーション<br />
  63. 63. 処理の流れ<br />クライアント アプリケーションが AD FS 2.0 にトークン発行を依頼<br />AD DS からクレームを収集<br />AD FS 2.0 から SAML 1.1 トークン発行<br />トークンを ACS に送信<br />ACS は受け取った SAML 1.1 トークンをルールに沿って検証<br />SWT を生成し、クライアントに発行<br />クライアント アプリケーションは受け取った SWT を分解し、正しい ACS から発行されたものか等を検証<br />問題なければ HTTPAuthorization ヘッダーに SWT を埋め込み、REST サービスにPOST<br />REST サービスは受け取った SWT を分解してロールを検証<br />ロールが正しければサービスを実行<br />
  64. 64. AppFabric ACSV2 の構造<br />独自プログラム<br />ManagementPortal<br />AppFabric ACSManagementService<br />Windows AzureAppFabric ACS 本体<br />リライング<br />パーティ<br />クレーム<br />プロバイダー<br />Protocol<br />クレーム変換<br />エンジン<br />Protocol<br />WS-Federation<br />WS-Federation<br />AD FS 2.0<br />ブラウザーベースアプリ<br />(Passive)<br />SAML/SWT<br />WS-Fed対応STS<br />クレームルール<br />google<br />WEBサイト<br />Yahoo!<br />SAML/SWT<br />OAuth 2.0<br />Facebook<br />SAML/SWT<br />OpenID 2.0<br />OpenID<br />SAML/SWT<br />Live ID<br />Windows LiveID<br />サービス/リッチクライアント<br />(Active)<br />SOAPWeb<br />サービス<br />WS-Trust<br />WS-Trustアプリ<br />WS-Trust<br />SAML/SWT<br />SWT<br />REST Web<br />サービス<br />OAuth/ WRAP 2.0<br />SWT<br />OAuth/ WRAP 2.0<br />SWT対応アプリ<br />
  65. 65. これから構築する環境について<br />
  66. 66. これから構築する環境<br />複数の IdP からの認証結果を受け入れる SSO システム<br />AppFabric ACSV2<br />Web アプリケーション<br />信頼<br />信頼<br />信頼<br />信頼<br />AD FS 2.0<br />は今回は除外<br />
  67. 67. 設定/作成 箇所は全部で11箇所<br />AppFabric ACSV2<br />Web アプリケーション<br />信頼<br />信頼<br />信頼<br />信頼<br />AD FS 2.0<br />は今回は除外<br />
  68. 68. AppFabricACS ラボサイトの準備<br /><ul><li>ネームスペースの作成</li></li></ul><li>Namespace の作成①<br />AppFabric ACS V2 ラボサイトに移動<br />https://portal.appfabriclabs.com/Default.aspx<br />
  69. 69. Namespace の作成 ②<br />Windows AzureAppFabric にサブスクライブしていない場合に表示される<br />
  70. 70. Namespace の作成 ③<br />Windows AzureAppFabric にサブスクライブしていない場合は「LabsSubscription」がサブスクリプション名となる<br />Namespace を指定する。ここで指定した名前が AppFabric ACS の WEBサイト名になる。<br />https://acstestsite.accesscontrol.appfabriclabs.com/<br />「Active」になったら使用可能<br />
  71. 71. AppFabric管理サイトへの移動<br />
  72. 72. AppFabricACS 管理サイト<br />※この画面は正式版で変わる可能性が大きいので簡単に。。。<br />Azureアプリケーションの登録<br />主に使用するメニュー<br />Identity Provider の登録<br />クレームルールの登録<br />セキュリティトークンの署名、暗号化のための証明書の登録<br />ACS から Active にセキュリティトークンを発行する場合に使用するユーザーIDを管理<br />管理ポータルにアクセスすることができるユーザーIDを設定<br />独自プログラムからの AppFabricACS 管理サービスへのアクセスを<br />許可するユーザーIDを登録する<br />カスタムログオン画面やエンドポイントのURLを確認する画面<br />
  73. 73. AppFabric ACS 管理サイトでの設定内容<br />クレーム<br />変換<br />ルール<br />Identity<br />Provider<br />Windows Azure<br />アプリケーション<br />AppFabric ACS V2<br />
  74. 74. クレーム対応アプリケーションの作成<br />Windows Azure の準備<br />Windows Azure用クレーム対応アプリケーションの作成<br />Windows Azure に展開<br />Windows AzureAppFabric ACS V2 に登録<br />
  75. 75. クレーム対応アプリケーションの作成Windows Azure の準備<br /><ul><li>サービスの新規作成
  76. 76. 自己署名証明書の作成
  77. 77. 証明書の登録</li></li></ul><li>サービスの新規作成~サービスの新規作成<br />Windows Azure ポータル に移動<br />http://windows.azure.com/<br />
  78. 78. サービスの新規作成~サービスのURLを設定する<br />識別名なので何でもよい<br />アプリケーションのURL<br />世界で唯一である必要がある<br />アプリケーションを展開するデータセンター<br />同時にアプリケーションを展開することもできるが、今回はまだ作成していないので「展開しない」を選択<br />
  79. 79. サービスの新規作成 ~サービスの初期状態<br />まだ「入れ物」を作っただけなので、OSは展開されていない<br />
  80. 80. 自己署名証明書の準備 ~Windows Azure で使用する証明書とは<br />参考<br />http://blogs.technet.com/b/junichia/archive/2010/09/02/3353275.aspx<br />サブスクリプション証明書(.cer)<br />サービス管理 API(SMAPI)へのアクセスに使用<br />X.509 V3(.CER)に対応し、最低 2048 bit キー を持っている<br />サービス証明書(.pfx)<br />サービスへの SSL 通信に使用<br />thumbprint によってアプリケーションと対応付け<br />いずれも自己署名証明書を利用可能<br />
  81. 81. (参考)SSL 通信と証明書管理<br />SSL<br />発行<br />SMAPI<br />REST<br />Storage Node<br />Compute Node<br />Guest<br />Root<br />SAK<br />SSL<br />格納<br />FA<br />FA<br />GA<br />SSL<br />Hypervisor<br />Fabric<br />Controller<br />Controller<br />PKCS12<br />PKCS12<br />発行<br />内部通信に使用される<br />外部ーFCとの通信に使用<br />Microsoft CA<br />
  82. 82. 自己署名証明書の準備~[FAQ] 証明書の「主体(Subject)」について<br />http://blogs.technet.com/b/junichia/archive/2010/09/03/3353536.aspx<br />Windows Azure 上に展開されるアプリケーションの FQDN は…<br /> xxxxxxxx.cloudapp.net<br />マイクロソフト所有のドメイン…<br />ということは…<br />xxxxxxxx.cloudapp.net で<br />証明書を取得することはできない<br />CNAME を使用して証明書を取得する必要がある<br />※今回は自己署名証明書を使用します<br />
  83. 83. 自己署名証明書の準備 ~証明書の登録場所<br />サブスクリプション<br />サブスクリプション<br />証明書(.cer)<br />アカウント<br />import<br />サービス<br />tf20110311.cloudapp.net<br />サービス証明書<br />(.pfx)<br />import<br />サービス<br />xxxx.cloudapp.net<br />サービス証明書<br />(.pfx)<br />import<br />サービス<br />yyyy.cloudapp.net<br />サービス証明書<br />(.pfx)<br />import<br />
  84. 84. 自己署名証明書の準備 ~自己署名証明書を作成するツール<br />.NET Framework SDK <br /><ul><li>makecert.exe ← サブジェクトを指定できる
  85. 85. pvk2pfx.exe</li></ul>.CER<br />.PFX<br />pvk2pfx<br />makecert<br />.PVK<br />
  86. 86. 自己署名証明書の準備~自己署名証明書の作成<br />Visual Studio をインストールしたマシンにログオン<br />[スタート]-[すべてのプログラム]-[Microsoft Visual Studio 2010]-[Visual Studio Tools]-[Visual Studio コマンドプロンプト] を起動<br />証明書(.cer)ファイルとプライベートキーファイル( .pvk)ファイルを作成<br />.pvkと .cerから .pfx ファイルを作成する<br />.cerと .pfxファイルを Windows Azure にインポートする<br />makecert -r -pe -n "CN=tf20110311.cloudapp.net" <br />-sky exchange “tf20110311.cloudapp.net.cer" <br />-sv“tf20110311.cloudapp.net.pvk"<br />pvk2pfx -pvk"tf20110311.cloudapp.net.pvk“<br />-spc“tf20110311.cloudapp.net.cer“<br />-pfx“tf20110311.cloudapp.net.pfx“<br />-pi <パスワード><br />
  87. 87. 証明書の登録~サブスクリプション証明書の登録(.cer)<br />
  88. 88. Windows Azure 用クレーム対応アプリケーションの作成<br />
  89. 89. その前にクレーム対応アプリケーションとは。。。<br />
  90. 90. Windows Azure 用クレーム対応アプリケーションの作成「認証の分離」とその限界<br />多くのアプリケーションが「認証」を分離してきたが…<br />アプリケーション<br />これまでの方式<br />認証<br />ロール<br />サービス<br />アプリケーション<br />認証<br />ロール<br />サービス<br />認証<br />
  91. 91. Windows Azure 用クレーム対応アプリケーションの作成「認証分離」の限界<br /><ul><li>認証プロトコルの違い
  92. 92. Identity 管理ポリシーの違い
  93. 93. アプリケーション側の対応
  94. 94. Single Sign-On/Off への適用</li></ul>Windows<br />Live<br />アプリ1<br />プロトコル<br />情報の整形<br />情報の解釈<br />情報<br />プロトコル<br />強い絆<br />情報<br />情報<br />強い絆<br />強い絆<br />アプリ2<br />Google<br />プロトコル<br />情報の整形<br />プロトコル<br />情報の解釈<br />情報<br />強い絆<br />情報<br />情報<br />
  95. 95. Windows Azure 用クレーム対応アプリケーションの作成解決への考察<br /><ul><li>フェデレーション信頼による素結合
  96. 96. STS によりアプリケーション側の処理を削減
  97. 97. 情報はセキュリティトークンに格納して受け渡し</li></ul>STS<br />STS<br />Windows<br />Live<br />アプリ1<br />プロトコル<br />情報の整形<br />情報の解釈<br />プロトコル<br />情報<br />プロトコル<br />フェデレーション信頼<br />情報<br />情報<br />STS<br />アプリ2<br />Google<br />STS<br />プロトコル<br />プロトコル<br />プロトコル<br />情報の整形<br />情報の解釈<br />情報<br />情報<br />情報<br />
  98. 98. <ul><li>AppFabric ACS がユーザーのロールを管理
  99. 99. アプリケーションは受け取ったロールを解釈するだけ</li></ul>WIF<br />AppFabric ACS<br />Windows Azure 用クレーム対応アプリケーションの作成AppFabric ACS と WIF の役割<br />STS<br />STS<br />Windows<br />Live<br />WEB<br />アプリ<br />プロトコル<br />情報の整形<br />情報の解釈<br />プロトコル<br />情報<br />プロトコル<br />信頼<br />情報<br />情報<br />WIF:Windows Identity Foundation<br />
  100. 100. Windows Azure 用クレーム対応アプリケーションの作成認証/ロール管理からの分離<br />アプリケーション<br />これまでの方式<br />認証<br />ロール<br />サービス<br />アプリケーション<br />認証<br />ロール<br />サービス<br />認証<br />セキュリティ<br />トークン<br />アプリケーション<br />クレームに対応<br />認証<br />クレーム<br />クレーム解釈<br />サービス<br />クレーム<br />認証<br />
  101. 101. Windows Azure 用クレーム対応アプリケーションの作成WIF アプリケーションの構造<br />WIF (Windows Identity Foundation) を使用してセキュリティー トークンからクレームを取り出す<br />WIF は WS-Federation/WS-Trustをサポート<br />ロールは既にトークンにセットされているので評価するだけでOK<br />ASP.NET<br />AppFabric ACS<br />クレームの評価<br />ロール判定<br />トークン<br />Windows Identity Foundation<br />各種処理<br />.NET Framework 4<br />ブラウザー<br />
  102. 102. Windows Azure 用クレーム対応アプリケーションの作成クレームの構造と識別方法<br />Microsoft.IdentityModel.Claims<br />http://msdn.microsoft.com/ja-jp/library/microsoft.identitymodel.claims.aspx<br />これらの値で<br />クレームを識別する<br />Claims<br />ClaimType<br />Claim<br />Value<br />Claim<br />Claim<br />Issuer<br />Claim<br />OriginalIssuer<br />ValueType<br />subject<br />
  103. 103. Windows Azure 用クレーム対応アプリケーションの作成事前にインストールしておくもの<br />Windows 7 + Visual Studio 2010 の場合<br />WindowsAzure Tools for Microsoft Visual Studio 1.4(2011年3月)<br />VSCloudService.exe<br />VSCloudService.VS100.ja-jp.msi (言語パック)<br />※Windows Azure SDK1.4 も一緒にインストールされます<br />Windows Identity Foundation 3.5 ランタイム 日本語版(KB974495)<br />Windows6.1-KB974405-x64j.msu<br />Windows Identity Foundation 3.5 日本語版<br />WindowsIdentityFoundation-SDK-3.5.msi<br />Windows Identity Foundation 4.0 英語版<br />WindowsIdentityFoundation-SDK-4.0.msi<br />Microsoft CAPICOM 2.1.0.2 SDK※自己署名証明書を作成する場合に必要<br />
  104. 104. (参考)WIF対応アプリケーション用テンプレートを複製※今回は使いません<br />%Program Files(x86)%Windows Identity Foundation SDKv4.0Visual Studio Extensions10.0<br />├ csClaimsAwareASPNETSite.zip<br />├ csClaimsAwareWCFSite.zip<br />├ csSTSASPNETSite.zip<br />└ csSTSWCFSite.zip<br />コピー<br /><マイドキュメント>Visual Studio 2010TemplatesProject TemplatesVisual C#<br />WIF を使用するための<br />テンプレートが追加される<br />
  105. 105. Windows Azure 用クレーム対応アプリケーションの作成管理者として VSを実行<br />OR<br />
  106. 106. Windows Azure 用クレーム対応アプリケーションの作成テンプレートの選択<br />
  107. 107. Windows Azure 用クレーム対応アプリケーションの作成ロールの指定<br />ワーカーロールとWebロールの違いについての詳細は以下を参照<br />Windows Azure Platform の概要<br />http://technet.microsoft.com/ja-jp/cloud/gg236628.aspx<br />
  108. 108. Windows Azure 用クレーム対応アプリケーションの作成Windows Identity Foundation への参照追加<br />.NET から Microsoft.IdentityModel を追加する<br />
  109. 109. Windows Azure 用クレーム対応アプリケーションの作成Microsoft.IdentityModel モジュールの複製設定<br />Windows Azure で用意されている Windows Server には WIF がインストールされていない。<br />そこで、Microsoft.IdentityModel をAzure 上でも使用できるよう、パッケージの中に組み込んでおく必要がある。<br />一緒にアップロード<br />パッケージ<br />Microsoft.IdentityModel<br />
  110. 110. Windows Azure 用クレーム対応アプリケーションの作成SSL の設定 ①<br />SSL を使用する場合には、サービス証明書へのポインター(Thumprint)を<br />Visual Studio 側に設定しておく必要がある<br />
  111. 111. Windows Azure 用クレーム対応アプリケーションの作成SSLの設定 ②<br />
  112. 112. Windows Azure 用クレーム対応アプリケーションの作成SSLの設定 ③<br />識別名なので何でもよい<br />このまま<br />サービス証明書の Thumbprint<br />証明書の識別名を<br />選択<br />HTTPS/443 を選択<br />
  113. 113. Windows Azure 用クレーム対応アプリケーションの作成STS 参照の追加 ①<br />AzureアプリのURLを指定する<br />
  114. 114. Windows Azure 用クレーム対応アプリケーションの作成STS参照の追加 ②<br />AppFabricACSV2 の メタデータを登録する<br />Windows Azure アプリ<br />AppFabric ACS V2<br />信頼<br />信頼<br />AD FS 2.0<br />ここの設定<br />この情報を控えておく<br />
  115. 115. Windows Azure 用クレーム対応アプリケーションの作成STS参照の追加 ③<br />AppFabricACSV2 のメタデータを指定<br />
  116. 116. Windows Azure 用クレーム対応アプリケーションの作成STS参照の追加 ③<br />
  117. 117. Windows Azure 用クレーム対応アプリケーションの作成Web.configの編集 ①<br /><system.web> は複数存在するので、挿入場所に注意してください<br /><configuration><br /> <system.web> <br />  <customErrors mode=“off” /><br />  <httpRuntimerequestValidiationMode=“2.0” /><br />
  118. 118. Windows Azure 用クレーム対応アプリケーションの作成Web.configの編集 ②<br />Azure にアップロードした サービス証明書の Thumbprint を追記する<br /><serviceCertificate><br /><certificateReference x509FindType="FindByThumbprint" findValue=“<THUMBPRINT>"/><br /></serviceCertificate><br />
  119. 119. Windows Azure 用クレーム対応アプリケーションの作成ちょっとだけコーディング(っていうかコピペ)①<br />今回は、オンプレミスに展開したアプリケーションのコードを流用<br /><ul><li>Default.aspxの[ソース]を丸ごと以下に置き換える</li></ul><%@ Page Language="C#" AutoEventWireup="true" Codebehind="Default.aspx.cs" Inherits="WebRole1._Default" ValidateRequest="false"%><br /><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br /><html xmlns="http://www.w3.org/1999/xhtml"><br /><head id="Head1" runat="server"><br /> <title>Claims-aware ASP.NET Web Site</title><br /> <style type="text/css"><br /> .style1<br />{<br /> font-size: large;<br /> font-weight: bold;<br />}<br /> </style><br /></head><br /><body><br /> <p class="style1"><br /> Windows Identity Foundation - Claims-aware ASP.NET Web Site</p><br /> <form id="form1" runat="server"><br /></form><br /></body><br /></html><br />
  120. 120. Windows Azure 用クレーム対応アプリケーションの作成ちょっとだけコーディング(っていうかコピペ) ②<br /><ul><li>Default.aspx.csのソースを以下に置き換え</li></ul>using System;<br />using System.Collections.Generic;<br />using System.Linq;<br />using System.Web;<br />using System.Web.UI;<br />using System.Web.UI.WebControls;<br />using Microsoft.IdentityModel.Claims;<br />つづく<br />
  121. 121. namespace WebRole1<br />{<br /> public partial class _Default : System.Web.UI.Page<br /> {<br /> protected void Page_Load(object sender, EventArgs e)<br /> {<br />IClaimsPrincipalclaimsPrincipal = Page.User as IClaimsPrincipal;<br />IClaimsIdentityclaimsIdentity = (IClaimsIdentity)claimsPrincipal.Identity;<br /> // The code below shows claims found in the IClaimsIdentity.<br /> // TODO: Change code below to do your processing using claims.<br /> Table claimsTable = new Table();<br />TableRowheaderRow = new TableRow();<br />TableCellclaimTypeCell = new TableCell();<br />claimTypeCell.Text = "Claim Type";<br />claimTypeCell.BorderStyle = BorderStyle.Solid;<br />TableCellclaimValueCell = new TableCell();<br />claimValueCell.Text = "Claim Value";<br />claimValueCell.BorderStyle = BorderStyle.Solid;<br />つづく<br />
  122. 122. headerRow.Cells.Add(claimTypeCell);<br />headerRow.Cells.Add(claimValueCell);<br />claimsTable.Rows.Add(headerRow);<br />TableRownewRow;<br />TableCellnewClaimTypeCell, newClaimValueCell;<br />foreach (Claim claim in claimsIdentity.Claims)<br /> {<br />newRow = new TableRow();<br />newClaimTypeCell = new TableCell();<br />newClaimTypeCell.Text = claim.ClaimType;<br />newClaimValueCell = new TableCell();<br />newClaimValueCell.Text = claim.Value;<br />newRow.Cells.Add(newClaimTypeCell);<br />newRow.Cells.Add(newClaimValueCell);<br />claimsTable.Rows.Add(newRow);<br /> }<br />this.Controls.Add(claimsTable);<br /> }<br /> }<br />}<br />
  123. 123. あー面倒くさい。。。orzなので…プロジェクトファイルを以下に置きました<br />http://blogs.technet.com/b/junichia/archive/2011/03/08/3392241.aspx<br />証明書の設定、STS参照の追加 だけ行ってください<br />
  124. 124. Windows Azure に展開<br />
  125. 125. Windows Azure に展開アプリケーションの発行方法<br />今回はこちらの<br />方法を使用する<br />2通りの発行方法<br /><ul><li>Visual Studio から直接発行する
  126. 126. パッケージファイルを保存して、ポータルサイトからアップする</li></ul>直接発行<br />アップロードして展開<br />ここまでは<br />開発者の仕事<br />展開するのはITPROの仕事<br />サービスパッケージを作成<br />Windows Azure Portal<br />.cspkg<br />.cscfg<br />
  127. 127. Windows Azure に展開サービスパッケージを作成 ①<br />IIS への発行とは少し異なります<br />インフラ担当者は、今後パッケージの展開を依頼されることがあるはずです<br />その場合にはこの方法を使用します。<br />
  128. 128. Windows Azure に展開サービスパッケージを作成 ②<br />コンパイルが完了するとエクスプローラーが開かれる<br />この2つのファイルを<br />アップロードする<br />
  129. 129. Windows Azure に展開サービスパッケージをアップロード ①<br />
  130. 130. Windows Azure に展開サービスパッケージをアップロード ②<br />ロールインスタンスが1つの場合に出るワーニング<br />
  131. 131. Windows Azure に展開サービスパッケージをアップロード ③<br />
  132. 132. Windows Azure に展開展開後の状態<br />URLはHTTPであることに注意<br />
  133. 133. Windows Azure に展開メタデータへの接続を確認<br />アップロードが完了してステータスが「Ready」になったら、以下に接続して表示されることを確認してみましょう。<br />https://tf20110311.cloudapp.net/FederationMetadata/2007-06/FederationMetadata.xml<br />
  134. 134. WebアプリケーションをAppFabricACS に登録する<br />
  135. 135. Webアプリケーションを AppFabricACS に登録するWEBアプリケーションの登録 ①<br />Azure上に展開したWEBアプリケーションを AppFabric ACS に登録する<br />Windows Azure アプリ<br />AppFabric ACS V2<br />信頼<br />信頼<br />済<br />AD FS 2.0<br />ここの設定<br />
  136. 136. Webアプリケーションを AppFabricACS に登録するWEBアプリケーションの登録 ②<br />AppFabric ACS 内でのAzureアプリケーションの識別名<br />アプリケーション情報の登録方法<br />手動で設定するか、メタデータをアップロードするかを選択する。今回は「手動」。<br />セキュリティトークンの要求元を指定する<br />セキュリティトークンをどこにPostするのかを指定する<br />エラーが発生した場合に表示するページ<br />
  137. 137. Webアプリケーションを AppFabricACS に登録するWEBアプリケーションの登録 ③<br />セキュリティトークンのフォーマット(SAML2.0/SAML1.1/SWT)<br />セキュリティトークンを暗号化するかどうか<br />セキュリティトークンの有効期間(秒)<br />Azure アプリケーションと関連付ける Identity Provider。<br />「Identity Providers」メニューで登録した IdP が表示される。規定では「Windows LiveID」のみ。<br />適用するクレーム変換ルール。複数のアプリケーションで1つのルールを共有することも可能。1つのアプリケーションが複数のルールを使用することも可能。<br />トークンの署名に使用する証明書ファイル<br />規定は「規定の証明書」<br />
  138. 138. Webアプリケーションを AppFabricACS に登録するセキュリティトークンの署名と暗号化について<br />AppFabric ACS V2<br />IdP<br />RP<br />信頼<br />信頼<br />metadata<br />metadata<br />metadata<br />metadata<br />トークンフォーマット<br />署名<br />署名<br />複合化<br />暗号化<br />暗号化<br />複合化<br />SAML 2.0<br />SAML 2.0<br />X.509<br />Private Key<br />X.509<br />Public Key<br />X.509<br />Public Key<br />X.509<br />.cer<br />X.509<br />(.cer)<br />SAML 2.0<br />X.509<br />Private Key<br />SAML 1.1<br />SAML 1.1<br />X.509<br />(.cer)<br />SAML 1.1<br />X.509<br />.cer<br />X.509<br />Private Key<br />X.509<br />Public Key<br />X.509<br />Public Key<br />X.509<br />Private Key<br />SWT<br />SWT<br />SWT<br />256-bit symmetric signing key <br />256-bit symmetric signing key <br />
  139. 139. Identity Provider との連携<br /><ul><li>AD FS 2.0 との連携
  140. 140. Windows Live ID との連携
  141. 141. Google との連携
  142. 142. Facebook との連携</li></li></ul><li>AD FS 2.0 との連携<br />
  143. 143. Identity Provider との連携 ~ AD FS 2.0AD FS 2.0 の場合<br /><ul><li>Windows Live は「信頼できるサイト」にのみ個人情報を提供するため、規定で取得できるクレームは nameidentifierのみ</li></ul>AD FS 2.0<br />Windows Azure アプリ<br />AppFabric ACS V2<br />クレーム発行<br />クレーム変換<br />AD FS 2.0<br />クレーム送付<br />クレーム発行<br />属性<br />Redirect<br />Active Directory<br />企業ネットワーク<br />
  144. 144. Identity Provider との連携 ~ AD FS 2.0複数の AD FS 2.0 を登録可能<br />企業ごとにクレーム変換ルールを設定することができる<br />(例)企業国籍別、企業文化別など<br />AD FS 2.0<br />AppFabric ACS V2<br />部長<br />クレーム発行<br />国内企業A<br />管理職<br />クレーム変換<br />ロール決定<br />AD FS 2.0<br />管理職<br />クレーム変換<br />主席部長<br />クレーム発行<br />ロール決定<br />管理職<br />クレーム変換<br />ロール決定<br />国内企業B<br />日本語に変換<br />クレーム発行<br />AD FS 2.0<br />Manager<br />海外企業C<br />
  145. 145. Identity Provider との連携 ~ AD FS 2.0AppFabric ACS V2 と AD FS2.0 の連携手順<br />AD FS 2.0 側<br />Active Directory を構築<br />AD FS 2.0 を構築<br />RP(証明書利用者)として AppFabricACS を登録(メタデータの登録)<br />クレームルールを登録<br />AppFabricACS V2 側<br />AD FS 2.0 のエンドポイントを Identity Provider として登録(メタデータの登録)<br />クレームルールを登録<br />今回は実施済みとします<br />
  146. 146. Identity Provider との連携 ~ AD FS 2.0AD FS 2.0 に証明書利用者として ACSを登録する ①<br />Windows Azure アプリ<br />AppFabric ACS V2<br />ここの設定<br />信頼<br />信頼<br />済<br />済<br />AD FS 2.0<br />メタデータのURIを控えておく<br />
  147. 147. Identity Provider との連携 ~ AD FS 2.0AD FS 2.0 に 証明書利用者として ACS を登録する ②<br />AD FS 2.0 管理コンソールを開く<br />
  148. 148. Identity Provider との連携 ~ AD FS 2.0AD FS 2.0 に 証明書利用者として ACS を登録する ③<br />ここにAppFabric ACS メタデータのURIを指定<br />
  149. 149. Identity Provider との連携 ~ AD FS 2.0AD FS 2.0 に 証明書利用者として ACS を登録する ④<br />規定で「すべてのユーザーにクレームの発行を許可するか否か」を設定する(発行承認規則)。許可した場合には、クレームルール(要求規則)の設定を使用してクレームの発行条件を設定する必要がある。<br />
  150. 150. Identity Provider との連携 ~ AD FS 2.0AD FS 2.0 に 証明書利用者として ACS を登録する ⑤<br />完了<br />
  151. 151. Identity Provider との連携 ~ AD FS 2.0AD FS2.0 クレームルールを登録 ①<br />メールアドレスがトークンに含まれるようにクレームルール(要求規則)を登録する(今回は簡単に!)<br />クレームルール(要求規則)はかなり複雑な概念です。きちんと勉強したい方は、別冊「ADFS 2.0 を使用してWindows Azure との SSO を実現しよう」をご覧ください。<br />
  152. 152. Identity Provider との連携 ~ AD FS 2.0(参考)AD FS 2.0 ~クレーム パイプライン<br />証明書利用者<br />(RP)<br />クレームストア<br />トークン<br />② 承認する<br />③ 発行する<br />① 受付ける<br />発行<br />変換<br />規則<br />output<br />受け<br />付け<br />変換<br />規則<br />input<br />発行<br />承認<br />規則<br />input<br />output<br />output<br />input<br />OK/<br />NG<br />switch<br />要求プロバイダー信頼<br />(Claims Provider Trusts)<br />証明書利用者信頼 (Relying PartyTrust)<br />要求規則 (Claim Rule)<br />
  153. 153. Identity Provider との連携 ~ AD FS 2.0AD FS2.0 クレームルールを登録 ②<br />
  154. 154. Identity Provider との連携 ~ AD FS 2.0AD FS2.0 クレームルールを登録 ③<br />クレームの<br />取得元<br />格納するクレームタイプの識別名<br />※ここに表示されているのは「識別名」であることに注意。クレームタイプ(Claim Type)はURIの形式で表現される(次次ページ参照)<br />ADから持ってくる属性<br />※ldap属性名とは一致していないので注意(次ページ参照)<br />
  155. 155. Identity Provider との連携 ~ AD FS 2.0(参考)既定の LDAP 属性<br />
  156. 156. Identity Provider との連携 ~ AD FS 2.0(参考)要求記述<br /><ul><li>システム間で送受信するクレームタイプが定義されている</li></ul>このクレームを外部から受信可能か否か、外部に送信可能か否かを定義<br />ワールドワイドで一意なクレームの名前(だから URI で書かれている)。これを使ってクレームが識別される。<br />あくまでも識別名としての「名前」。このSTS内部だけで通用する。<br />
  157. 157. Identity Provider との連携 ~ AD FS 2.0AD FS2.0 クレームルールを登録 ④<br />
  158. 158. Identity Provider との連携 ~ AD FS 2.0ACS V2 の Identity Provider に AD FS 2.0 を登録する ①<br />ここの設定<br />Windows Azure アプリ<br />AppFabric ACS V2<br />信頼<br />信頼<br />済<br />済<br />済<br />AD FS 2.0<br />AD FS 2.0 のメタデータをテキストファイルに保存しておく<br />https://<ADFSServer>/federationmetadata/2007-06/federationmetadata.xml<br />
  159. 159. Identity Provider との連携 ~ AD FS 2.0ACS V2 の Identity Provider に AD FS 2.0 を登録する ②<br />
  160. 160. Identity Provider との連携 ~ AD FS 2.0ACS V2 の Identity Provider に AD FS 2.0 を登録する ③<br />Identity Provider の識別名。ADFS2.0は複数登録することが可能なので、識別しやすい名前を指定する<br />AD FS 2.0 のメタデータを指定する。URL の場合には AppFabricがアクセス可能なサーバーである必要がある。<br />Identity Provider の選択画面に表示される識別名<br />Identity Provider の選択画面に表示されるロゴ画像<br />利用者に対して、ログオン時にEmailアドレスを強制的に入力させたい場合には、ここのメアドのサフィックス(microsoft.com)を指定する。セミコロンで複数指定可能。<br />このIdentity Provider を使用する アプリケーションを指定する<br />
  161. 161. Identity Provider との連携 ~ AD FS 2.0ACS V2 の Identity Provider に AD FS 2.0 を登録する ④<br />
  162. 162. Identity Provider との連携 ~ AD FS 2.0ACS V2 の Identity Provider に AD FS 2.0 を登録する ⑤<br />クレームルールを生成する<br />まだルールは無い<br />
  163. 163. Identity Provider との連携 ~ AD FS 2.0ACS V2 の Identity Provider に AD FS 2.0 を登録する ⑥<br />メタデータを元に自動生成されたクレーム<br />クレームとして emailaddressが発行されることが記載されている<br />
  164. 164. Identity Provider との連携 ~ AD FS 2.0クレームの流れ<br />Windows Azure アプリ<br />AppFabric ACS V2<br />Token<br />Token<br />変換<br />属性<br />属性<br />属性<br />属性<br />属性<br />属性<br />属性<br />属性<br />属性<br />属性<br />属性<br />属性<br />Token<br />変換<br />Token<br />属性<br />属性<br />属性<br />属性<br />属性<br />属性<br />属性<br />属性<br />属性<br />属性<br />属性<br />属性<br />AD FS 2.0<br />AD DS<br />
  165. 165. Identity Provider との連携 ~ AD FS 2.0AppFabric ACSV2 の Rule<br />IF(Rule Condition)<br />Claim Issuer<br />Input Claim Type<br />Input Claim Value<br />Then(Rule Actions)<br />Output Claim Type<br />Output Claim Value<br />もし<br />○○から発行された<br />○○というクレームタイプに<br />○○という値が入っていたら<br />そのときは<br />○○というクレームタイプに<br />○○という値を入れて発行する<br />
  166. 166. Identity Provider との連携 ~ AD FS 2.0AppFabric ACS に登録されているクレームルールの例<br />AppFabricに対するクレームの発行者<br />つまりIdentity Provider<br />AppFabric に対して入力方向のクレームタイプ<br />AppFabric に対して入力方向のクレームタイプに格納されているべき値<br />入力条件を満たしたときに発行されるクレームタイプ(出力方向のクレーム)<br />出力方向のクレームに格納される値<br />
  167. 167. Identity Provider との連携 ~ AD FS 2.0動作確認<br />https://tf20110311.cloudapp.net/<br />複数のIdentity Provider が登録されている場合にはセレクターが表示される。<br />1つしかなければそのまま ADFS に転送される<br />ADにログオンした状態であれば、SSOされる<br />ADFSで定義したメアド<br />
  168. 168. Identity Provider との連携 ~ AD FS 2.0SSOの流れ<br />信頼<br />7<br />9<br />WIF<br />信頼<br />クラウド<br />オンプレミス<br />1<br />AD DS<br />AD FS2.0<br />8<br />4<br />5<br />3<br />2<br />6<br />WIF:Windows Identity Foundation<br />
  169. 169. Windows Live との連携<br />
  170. 170. Windows Live との連携Windows LiveID の場合<br /><ul><li>Windows Live は「信頼できるサイト」にのみ個人情報を提供するため、規定で取得できるクレームは nameidentifierのみ</li></ul>Windows Live<br />Windows Azure アプリ<br />AppFabric ACS V2<br />クレーム発行<br />ID 管理簿<br />クレーム変換<br />クレーム送付<br />クレーム発行<br />Redirect<br />
  171. 171. Windows Live との連携AppFabric ACS V2 と WindowsLive ID の連携手順<br />LiveID 側<br />認証するだけならば何もなし!<br /> ※クレームを取得する場合は Microsoft Service Manager  への登録<br />AppFabricACS V2 側<br />Rule の登録<br />手順を調査中です<br />すみません…<br />
  172. 172. Windows Live との連携(参考)Microsoft Service Manager<br />手順を調査中!<br />https://msm.live.com/wizard/default.aspx<br />Windows LiveID を使用するサイトを登録し、信頼できるサイトであることを申請<br />登録されていないサイトには nameidentifier 以外のクレームが返されない<br />※マイクロソフトのプライバシーポリシーのため<br />
  173. 173. Windows Live との連携Windows Live ID 用の設定 ①<br />Windows Live ID は既に登録されている<br />Azure アプリを選択<br />
  174. 174. Identity Provider との連携 ~ Windows Live との連携Windows Live用の設定 ② ~ クレームルールの作成<br />クレームの変換ルールに、Windows Live 用のルールを埋め込む<br />ルールが既に存在する場合には、既存ルールをクリックする<br />
  175. 175. Identity Provider との連携 ~ Windows Live との連携Windows Live用の設定 ③ ~ クレームルールの作成<br />ルール名を入力/変更<br />ルールを自動生成<br />
  176. 176. Identity Provider との連携 ~ Windows Live との連携Windows Live 用の設定 ④ ~ クレームルールの作成<br />
  177. 177. Identity Provider との連携 ~ Windows Live との連携既定で Windows Live 用に自動生成されるルール<br />
  178. 178. Identity Provider との連携 ~ Windows Live との連携動作確認<br />Windows Live で認証されたことを示す<br />
  179. 179. Google との連携<br />
  180. 180. Identity Provider との連携 ~ Google との連携Google の場合<br /><ul><li>Facebook 外部WEBサイトとして AppFabric ACS を登録する</li></ul>Google<br />Windows Azure アプリ<br />AppFabric ACS V2<br />クレーム発行<br />ID 管理簿<br />クレーム変換<br />クレーム送付<br />クレーム発行<br />AppFabricACS によるユーザー情報へのアクセスを許可<br />Redirect<br />
  181. 181. Identity Provider との連携 ~ Google との連携AppFabric ACS V2 と Google の連携手順<br />Google 側<br />なにもなし!(ユーザーがアカウントを持っていればよい)<br />AppFabricACS V2 側<br />Identity Provider の登録<br />Rule の登録<br />
  182. 182. Identity Provider との連携 ~ Google との連携Google用の設定 ①<br />AppFabric ACS V2 管理サイトに移動<br />https://<Namespave>.accesscontrol.appfabriclabs.com/v2/mgmt/web<br />
  183. 183. Identity Provider との連携 ~ Google との連携Google用の設定 ②<br />IdP 一覧に表示したい<br />識別名を入力<br />関連付ける<br />アプリケーションを選択<br />IdP一覧に表示される<br />
  184. 184. Identity Provider との連携 ~ Google との連携Google用の設定 ③ ~ クレームルールの作成<br />クレームの変換ルールに、Google 用のルールを埋め込む<br />ルールが既に存在する場合には、既存ルールをクリックする<br />
  185. 185. Identity Provider との連携 ~ Google との連携Google用の設定 ④ ~ クレームルールの作成<br />ルール名を入力/変更<br />ルールを自動生成<br />
  186. 186. Identity Provider との連携 ~ Google との連携Google用の設定 ⑤ ~ クレームルールの作成<br />
  187. 187. Identity Provider との連携 ~ Google との連携Google 用に自動生成されるクレーム<br />これ以外の情報を取得できるかどうかは調査中。。。<br />
  188. 188. Identity Provider との連携 ~ Google との連携動作確認<br />AppFabricACSに渡されるクーム<br />
  189. 189. Identity Provider との連携 ~ Google との連携結果画面<br />
  190. 190. Facebook との連携<br />
  191. 191. Identity Provider との連携 ~ Facebook との連携Facebook の場合<br /><ul><li>Facebook 外部WEBサイトとして AppFabric ACS を登録する</li></ul>Facebook<br />Windows Azure アプリ<br />AppFabric ACS V2<br />Facebook<br />外部アプリ<br />インターフェース<br />クレーム発行<br />クレーム変換<br />クレーム送付<br />クレーム発行<br />属性<br />ログオン<br />Redirect<br />AppFabricACS によるユーザー情報へのアクセスを許可<br />ID 管理簿<br />
  192. 192. Identity Provider との連携 ~ Facebook との連携Facebook は複数のプロバイダーを登録可能<br />Facebook アプリケーションごとにクレームルールを設定できる<br />(例)言語別、企業別、ファンサイト別<br />AppFabric ACS V2<br />Facebook<br />Facebook<br />外部アプリ<br />インターフェース<br />クレーム発行<br />クレーム変換<br />ロール決定<br />Facebook<br />外部アプリ<br />インターフェース<br />クレーム変換<br />クレーム発行<br />ロール決定<br />属性<br />Facebook<br />外部アプリ<br />インターフェース<br />クレーム変換<br />ロール決定<br />クレーム発行<br />属性<br />Facebook<br />外部アプリ<br />インターフェース<br />クレーム変換<br />ロール決定<br />クレーム発行<br />属性<br />属性<br />ID 管理簿<br />
  193. 193. Identity Provider との連携 ~ Facebook との連携AppFabric ACS V2 と Facebook との連携手順<br />Facebook 側<br />Facebook アカウントを作成<br />開発者としてアカウントを登録<br />AppFabricACSV2 サイトをアプリケーションとして登録<br />AppFabricACS V2 側<br />Identity Provider の登録<br />Rule の登録<br />
  194. 194. Identity Provider との連携 ~ Facebook との連携Facebook アカウントを作成<br />Facebookサイトに移動<br />http://www.facebook.com/<br />
  195. 195. Identity Provider との連携 ~ Facebook との連携開発者としてアカウントを登録<br />開発者用アプリケーション利用サイトへ移動<br />http://www.facebook.com/apps/application.php?id=2345053339<br />
  196. 196. Identity Provider との連携 ~ Facebook との連携アカウントを認証①<br />開発者サイトに移動<br />http://www.facebook.com/developers/<br />今回は携帯電話を選択<br />
  197. 197. Identity Provider との連携 ~ Facebook との連携アカウントを認証②<br />携帯電話にメールが送付されるので、メール内の確認用コードを転記する<br />
  198. 198. Identity Provider との連携 ~ Facebook との連携AppFabricACS をアプリケーションとして登録①<br />アプリケーション作成サイトへ移動<br />http://www.facebook.com/developers/createapp.php<br />アプリケーション名を入力<br />
  199. 199. Identity Provider との連携 ~ Facebook との連携AppFabricACS をアプリケーションとして登録②<br />
  200. 200. Identity Provider との連携 ~ Facebook との連携AppFabricACS をアプリケーションとして登録③<br />AppFabric ACS のサイトを指定<br />
  201. 201. Identity Provider との連携 ~ Facebook との連携アプリケーション登録完了<br />Application ID<br />Application Secret<br />
  202. 202. Identity Provider との連携 ~ Facebook との連携Facebook用の設定 ①<br />AppFabric ACS V2 管理サイトに移動<br />https://<NameSpave>.accesscontrol.appfabriclabs.com/v2/mgmt/web<br />
  203. 203. Identity Provider との連携 ~ Facebook との連携Facebook 用の設定 ②<br />ACS内での Facebook の識別名(自分が識別できればなんでもよい)<br />Facebook へのアプリ登録時に発行された Application ID(アプリID)<br />Facebook へのアプリ登録時に発行された Application Secret(アプリの秘訣)<br />Azure アプリケーションに絶対必要なクレームを指定する。指定しない場合には Facebook利用者が一般公開を許可している属性へのアクセス許可をユーザーに要求する。<br />Identity Provider 選択画面に表示したい文字列(ユーザーが識別できればなんでもよい)<br />このIdentity Provider に関連付ける<br />Azureアプリケーション<br />
  204. 204. Identity Provider との連携 ~ Facebook との連携Facebook用の設定 ③<br />クレームの変換ルールに、Facebook 用のルールを埋め込む<br />ルールが既に存在する場合には、既存ルールをクリックする<br />
  205. 205. Identity Provider との連携 ~ Facebook との連携Facebook用の設定 ④<br />ルール名を入力<br />ルールを自動生成<br />ルールを生成する Identity Provider を選択<br />
  206. 206. Identity Provider との連携 ~ Facebook との連携Facebook用の設定 ⑤<br />
  207. 207. Identity Provider との連携 ~ Facebook との連携Facebook から得られるクレーム<br />2段階のクレーム取得手順<br />AppFabric ACS が取得してくれるクレーム<br />nameidentifier<br />expiration<br />emailaddress<br />name<br />identityprovider<br />AccessToken<br />アプリケーション自身が取得するクレーム<br />上記以外の属性は AppFabric ACS で取得した AccessToken を使用して、アプリケーションの中で独自に取得する必要がある<br />(例)user_location, user_hometown, user_website<br />取得した属性に対する AppFabricACS からのアクセスにはOAuthダイアログにてユーザーによるアクセス許可が必要<br />(参考)Facebook から取得可能なクレーム一覧<br />http://developers.facebook.com/docs/authentication/permissions/<br />
  208. 208. Identity Provider との連携 ~ Facebook との連携動作検証 ①<br />追加したIdentity Provider が表示される<br />Facebook にログオンしていない場合には<br />ログオン画面に転送<br />
  209. 209. Identity Provider との連携 ~ Facebook との連携動作検証 ② ~ OAuthダイアログ<br />Facebook に登録済みの個人情報に対する AppFabric ACS のアクセスを許可する<br />アクセス許可<br />AppFabric ACS V2<br />Application Permission に指定した属性<br />
  210. 210. Identity Provider との連携 ~ Facebook との連携動作検証 ③<br />
  211. 211. まとめ<br />
  212. 212. AppFabric ACSV2 により<br /><ul><li>WEB アプリケーションをマルチ IdP 対応に
  213. 213. Consumer系:Google/Facebook/OpenID/LiveID
  214. 214. Enterprise系:AD FS2.0/WS-Federation対応STS
  215. 215. Identity の管理は IdP に任せることができます
  216. 216. これからのアプリケーションはクレーム対応で!</li></li></ul><li>世界中の “ID” が利用者になる<br />Windows Azure AppFabric<br />AccessControlServiceV2<br />
  217. 217. ITPro の責任範囲<br />アーキテクチャの検討<br />IT Pro の責任範囲<br />サービスの展開<br />管理/監視<br />Drives<br />Memory<br />OS Patches<br />Networking<br />Physical Hardware<br />この部分のコストが意外と高い<br />
  218. 218. アーキテクトが求められる時代に<br />アーキテクチャの検討<br />Cloud の責任範囲<br />IT Pro の責任範囲<br />サービスの展開<br />増<br />管理/監視<br />Drives<br />減<br />Memory<br />減<br />OS Patches<br />求められるスキル<br /><ul><li>テクノロジー検証
  219. 219. パフォーマンス予測
  220. 220. コスト予測
  221. 221. 経営戦略に即した IT 設計
  222. 222. 開発者との情報交換</li></ul>Networking<br />Physical Hardware<br />
  223. 223. ハイブリッド クラウド のおさらい<br />アプリケーション間連携<br />データの同期<br />AppFabric Service Bus<br />ビジネスロジックの実装<br />コンポジットアプリケーションへの発展<br />SQL Azure Data Sync<br />SQL Azure <->SQL Azure<br />SQL Server <-> SQL Azure<br />コードレス<br />仮想ネットワーク<br />セキュリティ<br />Windows Azure Connect<br />オンプレミスとクラウドのセキュアなネットワーク層連携<br />オンプレミスの資源をクラウドから利用 (SQL Server, AD DS…)<br />ADFS2.0,AppFabric ACS<br />クレームベースの ID 連携<br />WS-Federation, WS-Trust,SAML 2.0<br />
  224. 224. ハイブリッドクラウドを検討しましょう<br />手塩にかけたオンプレミスを有効に活用しましょう<br />パブリッククラウドでしかできないこともあります<br />両者のおいしいところだけ食べましょう<br />まずはハイブリッド環境の実現から!<br />
  225. 225. © 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.<br />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.<br />

×