More Related Content Similar to AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済 Similar to AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済 (20) More from junichi anno (20) AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済1. ADFS 2.0 & ACS V2 を使用してWindows Azure との SSO を実現しよう 第 2.2 版2011.05.30 マイクロソフト株式会社 エバンジェリスト 安納 順一(あんのう じゅんいち) http://blogs.technet.com/junichia/ twitter @junichia 2. 本日のテーマと内容 何かと難解な アイデンティティ・フェデレーション の概念と実装方法を、実際の構築手順を体験しながら理解しましょう AD FS 2.0 と AppFabric ACS V2 を使用して、Windows Azure 上に展開した アプリケーション への シングルサインオン を構成します。 Windows Azure の基礎知識 AD FS 2.0 のインストールおよび環境設定方法 Windows Azure の環境設定方法 クレームを認識するアプリケーションの作成方法 AppFabric ACS V2 との連携方法 3. Agenda 復習:Active Directory ハイブリッド クラウド シナリオ アイデンティティ管理の現状と未来 アイデンティティ・フェデレーション と クレーム ベース セキュリティ Active Directory Federation Service 2.0 AD FS 2.0 の基礎知識 これから構築する環境 AD FS 2.0 展開の準備 AD FS 2.0 のインストールと初期構成 Windows Server と Windows Azure の違い Windows Azure の準備 クレーム対応アプリケーションとは クレーム対応アプリケーションの作成 アプリケーションをAzureに展開 アプリケーションを AD FS 2.0 に登録 AD FS 2.0 Deep Dive 4. Windows Azure AppFabric ACS V2 AppFabric ACS V2 の役割 AppFabric ACS の準備 AD FS 2.0 と ACS V2 の連携とは AD FS 2.0 と ACS V2 の連携構築 Google と ACS V2 との連携構築 Facebook と ACS V2 との連携構築 6. Business ReadySecurity 「ID & アクセス管理」は CoreIO の基盤 全てのリソースは ID を中心に結合 ホスト ネットワーク Access アプリケーション 情報 ID CoreIO : Core Infrastructure Optimization 8. 周辺ソフトウェアの Active Directory対応と適用範囲の拡大いまここ RecycleBin, AD FS 2.0 ADサービス化,RODC, GPP, PWポリシー,PowerShell対応 ADFS, SFU統合 ADAM, RMS, 管理機能の大幅な強化! Active Directory 登場! LDAP互換,Kerberos, マルチマスター, AD統合DNS Group Policy, GC, Site Link, SFU, 証明書 ... 22. Secure Cloud Federation クラウド オンプレミス データ同期 ~ SQL Azure Data Sync ~ アプリケーション間通信 ~ AppFabric Service Bus ~ 今日のテーマ セキュリティ ~ AD FS 2.0 & AppFabric ACS ~ 仮想ネットワーク ~ Windows Azure Connect ~ 29. ロールの二重管理パスワード ユーザー 管理簿 with パスワード 業務 ロール 管理簿 連携なし アクセス権 管理簿 ディレクトリサービス 業務 業務 ユーザー 管理簿 ユーザー 管理簿 ロール 管理簿 ロール 管理簿 アクセス権 管理簿 アクセス権 管理簿 ロールに矛盾 77. 「RP / SP」側のアプリケーションは再認証は行わない⑦ID関連付け,ロール決定 ④ セキュリティトークン変換 RPは CP を信頼している CP / IdP RP / SP ⑧ アクセス承認 セキュリティ トークン ⑤新トークン発行 ①認証/発行依頼 ③提示 各種 オーソリティ 各種 オーソリティ ②発行 WebApp 利用者 ⑥ 新セキュリティトークン送付 RP :Relying Party SP :Service Provider IdP:Identity Provider CP :Claims Provider 78. CP / IdPと RP / SP 間の信頼関係について 「信頼」とは何か? 物理的には メタデータ/証明書/暗号化キーを事前に交換 お互いの「すり替わり」を防止 データの横取りを防止 RP / SP CP/ IdP Metadata Metadata 信頼 URI URI 精神的には IdP 側 の アイデンティティ/ロール 管理責任を信頼 SP 側の クレーム管理責任を信頼 89. STS 間でフェデレーション信頼を構築企業A 企業B RP/SP IdP/CP AD DS 信頼 ④アクセス AD DS ①認証 WIF ③Token発行 AD FS 2.0 AD FS 2.0 Application ②Token発行 クレームストア クレーム ストア IdP:Identity Provider CP:Claims Provider RP : Relying Party SP : Service Provider 92. AD FS2.0 関連コンポーネントの配置と役割 intranet DMZ ADFSPROXY ADFS AD DS 構成DB loadbalance loadbalance 認証 cluster Internet AD DSor SQL Server or AD LDS STS 構成DB R-PROXY クレーム ストア STS : Security Token Services R-PROXY : Reverse Proxy 109. 7.AD FS 2.0 展開の準備 済 AD FS 2.0 用 証明書の準備 IIS の SSL を有効化 WinSv 2008 R2 のセットアップ Active Directory のセットアップ SQL Server のセットアップ IIS のインストール 120. IIS の SSL 証明書が既定の暗号化解除証明書として使用される今回は自己署名証明書を使用します 122. CNAME を登録 ⑤AD FS 2.0 用証明書の準備 tf20101102-01.tf.com (192.168.100.1) CNAME = tfadfs 名前解決 SSL証明書の主体名はここ 125. ⑤AD FS 2.0 用証明書の準備 自己署名証明書の作成 Visual Studio をインストールしたマシンにログオン [スタート]-[すべてのプログラム]-[Microsoft Visual Studio 2010]-[Visual Studio Tools]-[Visual Studio コマンドプロンプト] を起動 証明書(.cer)ファイルとプライベートキーファイル( .pvk)ファイルを作成 .pvkと .cerから .pfx ファイルを作成する makecert -r -pe -n "CN=tfadfs.tf.com" -sky exchange “tfadfs.tf.com.cer" -sv“tfadfs.tf.com.pvk" pvk2pfx -pvk“tfadfs.tf.com.pvk“ -spc“tfadfs.tf.com.cer“ -pfx“tfadfs.tf.com.pfx“ -pi <パスワード> 126. ⑥IIS の SSL を有効化 [Default Web Site] の SSL を有効にする 127. ⑥IIS の SSL を有効化 接続テスト https://tfadfs.tf.com/ 130. 8.AD FS 2.0 のインストールと初期構成 AD FS 2.0 のインストール AD FS 2.0 初期構成の準備 AD FS 2.0 初期構成 AD FS 2.0 管理コンソールの確認 131. ① AD FS 2.0 のインストール AD FS 2.0 のダウンロード Active Directory Federation Services 2.0 RTW - 日本語 2008用 2008 R2 用 132. ① AD FS 2.0 のインストール AD FS 2.0 のインストール (1) AdfsSetup.exe を実行 133. AD FS 2.0 のインストール (2) ① AD FS 2.0 のインストール 前提条件は自動的に満たしてくれる 再起動 137. サーバーファーム と スタンドアロン ② AD FS 2.0 初期構成の準備 スタンドアロン AD FS サーバー 1台 構成DB は WID のみ サーバーファーム AD FS サーバー 複数台を前提とした構成 ロードバランスが可能 構成DB は WIDor SQL Server(クラスタ可能) (ADFS+WID)*1 (ADFS+WID)*1 (ADFS+WID)*n ADFS*n + SQL Server 139. 5 分に 1 回の更新チェック(各サーバー->プライマリ) 145. クラスター構成可能低 プライマリ 可用性 ADFS R/W ADFS ADFS R/O R/O セカンダリ セカンダリ 高 ADFS ADFS ADFS R/W SQL Server WID:Windows Internal Database 147. SQL Server -> fsconfigコマンド でのみ構成可能一度構成した後で移行することはできないので注意しましょう! WIDが使われる 148. ② AD FS 2.0 初期構成の準備 (参考) Token Replay Attack とは http://msdn.microsoft.com/en-us/library/ee517257.aspx 取得済のセキュリティ トークンを再利用してアクセス権を得ようとするアタック キオスク端末等でブラウザーを閉じないと危険 ブラウザーの [戻る] でトークン取得ポイントに戻れてしまう WIF には Replay を検出する機能が実装されている Replay 検出は規定でオフ 有効にするには DetectReplayedTokens値をtrue 150. AD FS 用サービスアカウントの作成 ② AD FS 2.0 初期構成の準備 AD FS が使用するサービスアカウント サーバーファーム(複数のAD FS サービス)で共有するためドメインユーザーアカウントとして作成する スタンドアロンの場合には Network Service アカウントが使用される 管理者権限は(必ずしも)必要ない 管理者権限(servicePrincipalNameの書き込み権限)が無い場合 SPN の自動登録に失敗する(後述) 作成例 151. ③ AD FS 2.0 初期構成 インストール直後の管理コンソール ちょっとまった! 脊髄クリック注意!! 153. 1台目のAD FS~ 環境構成ウィザード編 (2) ③ AD FS 2.0 初期構成 事前に取り込んでおいた証明書が表示される 事前に作成しておいたサービスアカウント (注意) サービスアカウントの入力が求められるのは「サーバーファーム」を選択した場合 154. ③ AD FS 2.0 初期構成 サービス名をチェック これがAD FS のエンドポイントの一部になります 155. ③ AD FS 2.0 初期構成 1台目の AD FS~ 環境構成ウィザード編 (3) サービスアカウントに指定したユーザーが管理者権限を持っていない場合に発生する 159. ドメイン内に同じ SPN は登録できないSPN チェック SPNを送付 KDC SPN AD DS kerberos チケットを発行 チケット送付 AD FS 2.0サービス (adfssrv) サービス アカウント サービス認証 (参考)認証のためのサービスID http://msdn.microsoft.com/ja-jp/library/ms733130(VS.85).aspx 160. ③ AD FS 2.0 初期構成 SPN を手動で登録する setspn -a host/adfssrv <ドメイン名>lt;サービスアカウント名> (例)setspn-a host/adfssrvtfdfssvc 161. AD FS 2.0 を構成するファイルと設定情報 ③ AD FS 2.0 初期構成 SF : Server Farm 162. AD FS 2.0 をアンインストールするには ③ AD FS 2.0 初期構成 (参考)http://blogs.technet.com/b/junichia/archive/2010/07/28/3347209.aspx 証明書共有コンテナを削除(PowerShell を使用)ADSI Edit を起動し、「既定の名前付きコンテキスト」に接続し、CertificateSharingContainerの値と一致するコンテナを削除する。 AD FS 2.0(KB974408)を削除 WIF ランライム(KB974405)を削除 WID または SQL Server の当該インスタンス(もしくはデータベースのみ)を削除 IIS 上のアプリケーションとアプリケーションプール、ファイル群を削除 SPN を削除サービスアカウントの servicePrincipalName属性から「hostdfssrv」を削除 PS C:gt;Add-PsSnapin Microsoft.Adfs.Powershell PS C:gt;Get-ADFSProperties |Select-Object CertificateSharingContainer CertificateSharingContainer--------------------------- CN=0586a130-89fa-40e8-8896-18ece4d171e7,CN=ADFS,CN=Microsoft,CN=Program Data,DC=T3304,DC=com 再構成だけしたい場合は↑↓を実施 C:etspn -d host/adfssrv<ADFS サーバーのホスト名> 163. WID の管理方法 ③ AD FS 2.0 初期構成 SQL Server Management Studio Express を使用 サーバー名は.ipessql$microsoft##sseeqluery ADFS 2.0 用 DB 164. 1台目のAD FS~ fsconfigコマンド編(SQL Server を使用) ③ AD FS 2.0 初期構成 書式 FSConfig.exe CreateSQLFarm /ServiceAccount <ドメイン名>lt;サービスアカウント名> /ServiceAccountPassword <サービスアカウントのパスワード> /SQLConnectionString“database=<構成DB名> ;server=<SQL Server のサーバー名>lt;インスタンス名> ;integrated security=SSPI" /AutoCertRolloverEnabled /CleanConfig 既定の名前は AdfsConfiguration 既定のインスタンス(MSSQLSERVER)ならば指定しなくてもよい 165. ③ AD FS 2.0 初期構成 入力例 AD FS 2.0 のインストールディレクトリに移動 C:gt; cd C:rogram Filesctive Directory Federation Services 2.0 CreateSQLFarm オプションを指定して実行 C:……gt;FSConfig.exe CreateSQLFarm /ServiceAccountTFdfssvc /ServiceAccountPassword P@ssw0rd /SQLConnectionString“ database=AdfsConfiguration ;server=TF20101102-03 ;integrated security=SSPI" /AutoCertRolloverEnabled /CleanConfig 166. ③ AD FS 2.0 初期構成 対応を忘れずに! IIS上のアプリケーションを削除していない場合に出力される 167. ④AD FS 2.0 管理コンソールの確認 AD FS 2.0 管理コンソールの基礎 この AD FS 2.0(STS)で扱うことができるクレームが定義されている。逆に言えばここに定義されていないクレームを使うことはできない。先方から要求されているクレームは個々に定義する。 「要求プロバイダー」とは「IdP/CP」のこと。自分が RP/SP 側の STS である場合には、ここに IdP/CP となるサーバーを定義する。既定では自身が所属している Active Directory ドメインが定義されている(「要求プロバイダーであること」が規定値となっている)。 「証明書利用者」とは「RP/SP」のこと。自分がIdP/CP 側の STS である場合には、ここに RP/SP を定義することで信頼関係を構築できる。既定では何も定義されていない。 クレームのもととなる属性情報の格納庫を定義する。既定では、所属している Active Directory が定義されている。 174. *aaS の違い App App App IaaS PaaS App Platform Platform Platform Platform Platform オンプレミス オンプレミス Infrastructure Infrastructure Infrastructure Infrastructure Infrastructure SaaS Infrastructure オンプレミス 175. Windows AzurePlatform Web Role Worker Role VM Role Windows Azure Platform Windows Azure コンピュート ストレージ ファブリック ブロブ テーブル キュー SQL Azure WindowsAzure AppFabric Service Bus Access Control Service WindowsAzure Marketplace DataMarket Applications 176. マイクロソフトデータセンター用の Windows Server Node 用のOS PXEBoot用OS ゲストOSに 使用される ゲストOSに 使用される Rack FabricController Windows Azure ImageStore Maintenance OS Worker Role Windows Azure OS Web Role 展開・監視 ComputeNode StorageNode StorageNode ComputeNode 184. アプリケーション展開までの流れ Windows Server の場合 Application 手動 Windows Server Windows Server IIS IIS 手動 Server(H/W) Server(H/W) Server(H/W) 手動 Windows Azure (PaaS)の場合 Application 手動 「サービスのURL」が DNS に登録される Windows Server IIS 自動 PaaSなので、OSをインストールするというプロセスが存在しない Hyper-V Server(H/W) サービスを作成 アプリケーションを展開 185. Windows Azure VM のスケーラビリティ 価格は2011年5月現在 サブスクリプションあたり 最大20インスタンス UP OUT インスタンス数 186. スケールアウトとスケールイン 負荷に応じてインスタンス数を調整できる インスタンスの増減はユーザーに影響しない ロール インスタンス Application Application Application Application Application Application Windows Server Windows Server Windows Server Windows Server Windows Server Windows Server IIS IIS IIS IIS IIS IIS xxx.cloudapp.net WindowsAzure DataCenter 187. アップグレード ~ Inーplace Update 方式 Update Domain 単位でアップデートする 利用者には影響を与えない 自動更新(パッチ適用)時にも同じ方式が適用される Update Domain #0 アップデート 1 Update Domain #1 アップデート 2 新環境 アップデート 3 Update Domain #2 xxx.cloudapp.net 4 アップデート Update Domain #3 5 アップデート 1 Update Domain #4 アップデート Update Domain #0 Update Domain は最大5つ 188. アップグレード ~ VIP Swap 方式 ステージング環境とプロダクション環境の仮想IPを入れ替える 短時間での展開 容易なロールバック(やりなおし) xxx.xxx.xxx.xxx プロダクション xxx.cloudapp.net ステージング xxxx.hogehoge.net zzz.zzz.zzz.zzz 189. ハードウェア障害の影響 Fault Domain Cluster Top of Rack Switches Fabric Controller Node Node Node Node Node xxx.cloudapp.net Node Node Node Power Definition Unit Rack Rack Rack Rack 201. Windows Azure と Windows Server の違い ローカルストレージリセットのタイミング Reboot と ReImage(再展開)はシステム管理者の指示以外でも発生する 202. Windows Azure と Windows Server の違い 永続ストレージ 残したいデータは永続ストレージに保存する Windows AzureStorage SQL Azure REST API ゲスト(仮想マシン) http/https Application Windows Server IIS port 1433 WindowsAzure Storage ホスト(物理マシン) SQL Azure Hyper-V Server Windows Azure 203. Windows Azure Storage へのアクセス 計算ノードとストレージノードは分離されている Storage Node Compute Node Container Guest OS REST API .NET Application Query URL 操作 操作 Read/Write 有効時間 署名 SAK config SAK: Storage Account Key 209. ② サービスの新規作成 サービスのURLを設定する 識別名なので何でもよい アプリケーションのURL 世界で唯一である必要がある アプリケーションを展開するデータセンター 同時にアプリケーションを展開することもできるが、今回はまだ作成していないので「展開しない」を選択 211. ③ 自己署名証明書の準備 Windows Azure で使用する証明書とは 参考 http://blogs.technet.com/b/junichia/archive/2010/09/02/3353275.aspx サブスクリプション証明書(.cer) クライアント証明書 サービス管理 API(SMAPI)へのアクセスに使用 X.509 V3(.CER)に対応し、最低 2048 bit キー を持っている サービス証明書(.pfx) サービスへの SSL 通信に使用 thumbprint によってアプリケーションと対応付け いずれも自己署名証明書を利用可能 212. ③ 自己署名証明書の準備 証明書の登録場所 サブスクリプション サブスクリプション 証明書(.cer) アカウント import サービス tf20110311.cloudapp.net サービス証明書 (.pfx) import サービス xxxx.cloudapp.net サービス証明書 (.pfx) import サービス yyyy.cloudapp.net サービス証明書 (.pfx) import 213. ③ 自己署名証明書の準備 [FAQ] 証明書の「主体(Subject)」について http://blogs.technet.com/b/junichia/archive/2010/09/03/3353536.aspx Windows Azure 上に展開されるアプリケーションの FQDN は… xxxxxxxx.cloudapp.net マイクロソフト所有のドメイン… ということは… xxxxxxxx.cloudapp.net で 証明書を取得することはできない CNAME を使用して証明書を取得する必要がある ※今回は自己署名証明書を使用します 214. ③ 自己署名証明書の準備 自己署名証明書の作成 Visual Studio をインストールしたマシンにログオン [スタート]-[すべてのプログラム]-[Microsoft Visual Studio 2010]-[Visual Studio Tools]-[Visual Studio コマンドプロンプト] を起動 証明書(.cer)ファイルとプライベートキーファイル( .pvk)ファイルを作成 .pvkと .cerから .pfx ファイルを作成する .cerと .pfxファイルを Windows Azure にインポートする makecert -r -pe -n "CN=tf01.cloudapp.net" -sky exchange “tf01.cloudapp.net.cer" -sv“tf01.cloudapp.net.pvk" pvk2pfx -pvk "sydneytest.cloudapp.net.pvk“ -spc“tf01.cloudapp.net.cer“ -pfx“tf01.cloudapp.net.pfx“ -pi <パスワード> 221. Single Sign-On/Off への適用Active Directory アプリ1 プロトコル 情報の整形 情報の解釈 情報 プロトコル 強い絆 情報 情報 強い絆 強い絆 アプリ2 OpenLDAP プロトコル 情報の整形 プロトコル 情報の解釈 情報 強い絆 情報 情報 228. クレーム対応アプリケーションとは WIF アプリケーションの構造 WIF (Windows Identity Foundation) を使用してセキュリティー トークンからクレームを取り出す WIF は WS-Federation/WS-Trustをサポート ロールは既にトークンにセットされているので評価するだけでOK AD FS 2.0 ASP.NET クレームの評価 トークン ロール判定 Windows Identity Foundation 各種処理 .NET Framework 4 ブラウザー 232. 事前にインストールしておくもの ① 開発環境の準備 Windows 7 + Visual Studio 2010(Expressも可)の場合 WindowsAzure Tools for Microsoft Visual Studio 1.4(2011年3月) VSCloudService.exe VSCloudService.VS100.ja-jp.msi (言語パック) ※Windows Azure SDK1.4 も一緒にインストールされます Windows Identity Foundation 3.5 ランタイム 日本語版(KB974495) Windows6.1-KB974405-x64j.msu Windows Identity Foundation 3.5 日本語版 WindowsIdentityFoundation-SDK-3.5.msi Windows Identity Foundation 4.0 英語版 WindowsIdentityFoundation-SDK-4.0.msi Microsoft CAPICOM 2.1.0.2 SDK※自己署名証明書を作成する場合に必要 233. WIF対応アプリケーション用テンプレートを複製 ① 開発環境の準備 %Program Files(x86)%indows Identity Foundation SDK4.0isual Studio Extensions0.0 ├ csClaimsAwareASPNETSite.zip ├ csClaimsAwareWCFSite.zip ├ csSTSASPNETSite.zip └ csSTSWCFSite.zip コピー <マイドキュメント>isual Studio 2010emplatesroject Templatesisual C# WIF を使用するための テンプレートが追加される 236. ② アプリケーションの作成 ロールの指定 ワーカーロールとWebロールの違いについての詳細は以下を参照 Windows Azure Platform の概要 http://technet.microsoft.com/ja-jp/cloud/gg236628.aspx 238. ② アプリケーションの作成 Microsoft.IdentityModel モジュールの複製設定 Windows Azure で用意されている Windows Server には WIF がインストールされていない。そこで、Microsoft.IdentityModel をAzure 上でも使用できるよう、パッケージの中に組み込んでおく必要がある。 一緒にアップロード パッケージ Microsoft.IdentityModel 239. ② アプリケーションの作成 SSL の設定とは SSL を使用する場合には、サービス証明書へのポインター(Thumprint)を Visual Studio 側に設定しておく必要がある 242. ② アプリケーションの作成 STS 参照の追加 とは アプリケーションにSTS(セキュリティ トークン サービス)のメタデータを取り込むことで、信頼関係を確立する サービス提供 信頼 取り込む 認証機関 AD FS 2.0 244. ② アプリケーションの作成 STS 参照の追加 ② 「既存のSTSを使う」に AD FS 2.0 のメタデータを指定する 指定するのはCNAMEを使用したホスト名 https://tfadfs.tf.com/~ 「https://tfadfs.tf.com/」まで入力してクリックすると自動的に補完 247. ② アプリケーションの作成 STS 参照の追加 ⑤ AD FS 2.0 のメタデータに記載されている、「必須な」「使用可能な」 クレームタイプの一覧が表示される AD FS 2.0 で用意された FederationMetadata.xml(抜粋) AD FS 側の都合で変更される可能性がある 249. ② アプリケーションの作成 STS 参照の追加 ⑦ STS参照追加後のプロジェクト アプリ自身のメタデータが生成される AD FS 2.0 側に取り込む必要がある ※AD FS 2.0 のメタデータではない 取り込んだ AD FS 2.0 用メタデータをもとに、 AD FS 2.0 と通信し認証/承認 するための定義が大量に追記されている 250. ② アプリケーションの作成 Web.configの編集 ① <system.web> は複数存在するので、挿入場所に注意してください <configuration> <system.web> <customErrors mode=“off” /> <httpRuntimerequestValidiationMode=“2.0” /> 251. ② アプリケーションの作成 Web.configの編集 ② Azure にアップロードした サービス証明書の Thumbprint を追記する <serviceCertificate> <certificateReference x509FindType="FindByThumbprint" findValue=“<THUMBPRINT>"/> </serviceCertificate> 252. ② アプリケーションの作成 コーディング …面倒なので作ってあります 以下からダウンロードできます… http://blogs.technet.com/b/junichia/archive/2011/03/08/3392241.aspx 証明書の設定、STS参照の追加 だけ行ってください 264. ① AD FS への登録 AD FS 2.0 への 登録 とは アプリケーションのメタデータをAD FS 2.0 に登録することで、セキュリティトークンの発行を許可する サービス提供 信頼 取り込む 認証機関 AD FS 2.0 265. AD FS 2.0 への登録 (1) ① AD FS への登録 今度は WindowsAzure に展開したアプリケーションを、AD FS 2.0 に登録します。 前ページのメタデータ のURLを指定する 266. ① AD FS への登録 AD FS 2.0 への登録 (2) 見分けがつきやすい表示名を指定する 267. ① AD FS への登録 AD FS 2.0 への登録 (3) 270. ② 動作確認 Passive Web SSO の流れ ブラウザを使用してアプリケーションにアクセス アプリケーションが信頼している CPにリダイレクト セキュリティトークン発行のために CP 側 で認証 認証が完了するとクレームが収集され、ルールにのっとってロールを決定後、セキュリティトークンが生成される セキュリティトークンはブラウザーが送られ、ブラウザからアプリケーションにリダイレクト セキュリティトークンがアプリケーション内で解析され、ユーザーのアクセス権が決定 アプリケーションの画面がブラウザに送信 271. AD FS2.0 をもっと使いこなすために 15.AD FS2.0Deep Dive クレームパイプラインと要求規則(クレームルール) 要求規則の定義例 カスタムルールの定義例 AD FS 2.0 の監査 274. クレームパイプラインと要求規則(クレームルール) 要求規則 (Claim Rule) 入力された情報をルール (規則) に沿って処理し出力する 処理されたクレームは既定のパイプラインを通る 要求規則 入力方向の要求 他の要求 プロバイダー スルー LDAP 属性 変換 出力 AD DS AD LDS LDAP メンバーシップ フィルター SQL Server その他 カスタム クレーム 275. クレームパイプラインと要求規則(クレームルール) 要求規則セット (Claim Rule Set) のタイプ 受け付け変換規則 - Acceptance Transform Rule Set要求プロバイダー ー(AD DS, SQL Server, LDAP) から受け入れるクレーム セット 発行承認規則 - Issuance Authorization Rule Set証明書利用者 (RP) にアクセス可能なユーザーを明確にするためのルール。許可されたユーザーは「発行変換規則」からクレームを受け取れるため、証明書利用者へのアクセスが可能になる。 発行変換規則 - Issuance Transform Rule Set「受け付け要求規則」から発行されたクレーム セットを入力とし、証明書利用者 (RP) に発行するクレームを生成する 委任承認規則 - Delegation Authorization Rule Set他のユーザーの代理として証明書利用者 (RP) にアクセスできるかどうかを判断するためのルール 偽装承認規則 - Impersonate Authorization Rule Setユーザーが他のユーザーを偽装してアクセスできるかどうかを判断するためのルール。WindowsPowerShell で実装する。 276. クレームパイプラインと要求規則(クレームルール) AD FS 2.0 ~クレーム パイプライン 証明書利用者 (RP) クレームストア トークン ② 承認する ③ 発行する ① 受付ける 発行 変換 規則 output 受け 付け 変換 規則 input 発行 承認 規則 input output output input OK/ NG switch 要求プロバイダー信頼 (Claims Provider Trusts) 証明書利用者信頼 (Relying PartyTrust) 要求規則 (Claim Rule) 302. AD FS 2.0Deep Dive 要求規則(クレームルール)の定義 例 要求記述の定義 発行承認規則の定義 発行変換規則の定義 クレームルールの定義にありがちなミス 311. 要求規則(クレームルール)の定義 例 要求規則 の処理プロセスについて 前のルールの結果が次のルールに引き継がれる クレーム 要求規則セット 要求規則1 発行 条件 Input Claim Set 要求規則2 OutputClaim Set 要求規則 n トークン 322. カスタムルールの定義 カスタムルールの構造 True 条件部 発行部 False 条件文 1 => 発行文 条件文 2 && 入力方向のクレーム/属性をチェックし、すべての条件が True の場合に「発行部」が実行される。条件部が無い場合には無条件で True とみなされる。 条件部 && オプション 発行部 発行するトークンタイプと、そこに格納する属性/値を指定する。 必須 「クレームが発行されない」≠ アクセスできない ※クレームを持っていないユーザーにアクセスを許可するかどうかは アプリケーションの判断 336. add :input claim set に直接発行する-> クレーム発行のためのテンポラリー領域的な使い方add ステートメントは output クレームを発行しない クレーム 要求規則セット 要求規則1 => add(type = “title”, value = “部長"); input 領域にのみ発行 Input Claim Set OutputClaim Set 要求規則2 title = “部長” role=“Manager” [type == “title”, Value == “部長”] => issue(type = "Role", value = “Manager"); 344. カスタムルールの定義例 AD の logonCount属性を「ログオン回数」にセット Active Directory から logonCount 属性を取り出し、クレームタイプ logoncount に入れている 345. カスタムルールの定義例 logoncountをもとにステータスを判定するには logonCount < 10 ならば ステータスは シルバー c:[Type == “http://schemas.tf.com/identity/claims/logoncount”, Value =~ “^[0-9]{1}] => add (Type = "http://schemas.tf.com/identity/claims/userstatus", Value = "SILVER"); logonCount => 10and logonCount < 100 ならば ステータスは ゴールド c:[Type == “http://schemas.tf.com/identity/claims/logoncount”, Value =~ “^[0-9]{2}] => add(Type = "http://schemas.tf.com/identity/claims/userstatus", Value = “GOLD"); logonCount => 10and logonCount < 100 ならば ステータスは ゴールド c:[Type == “http://schemas.tf.com/identity/claims/logoncount”, Value =~ “^[0-9]{3}] => add(Type = "http://schemas.tf.com/identity/claims/userstatus", Value = “PLATINUM"); userstatusクレームを発行する => Issue(Type = "http://schemas.tf.com/identity/claims/userstatus“ ) ; 353. AppFabric ACS V2 の役割 必要なのはクラウド上の STS AppFabricACSV2 が複数のIdPを吸収する AppFabric ACSV2 Web アプリケーション 信頼 信頼 アプリケーションは クレーム対応しておけばよい 信頼 信頼 信頼 AD FS 2.0 AD FS 2.0 361. AppFabric ACS V2 の役割 Access ControlServiceV1の用途 アプリケーションに認証機能を実装することなく、アクセス制御を実現 Relying Party (例)道路の混雑状況を提供するサービス 信頼 AppFabric STS Access Control Service REST ③ トークン ②トークン ① 認証 ④ 結果 セキュリティ キー or SAML 1.1/2.0トークン or SWT ユーザー アプリ 362. AppFabric ACS V2 の役割 ACSV1 を 企業内 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 クライアント アプリケーション 363. AppFabric ACS V2 の役割 処理の流れ クライアント アプリケーションが 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 を分解してロールを検証 ロールが正しければサービスを実行 364. AppFabric ACS V2 の役割 AppFabric ACSV2の構造 独自プログラム ManagementPortal AppFabric ACSManagementService Windows AzureAppFabric ACS 本体 リライング パーティ クレーム プロバイダー Protocol クレーム変換 エンジン Protocol WS-Federation WS-Federation AD FS 2.0 ブラウザーベースアプリ (Passive) SAML/SWT WS-Fed対応STS クレームルール google WEBサイト Yahoo! SAML/SWT OAuth 2.0 Facebook SAML/SWT OpenID 2.0 OpenID SAML/SWT Live ID Windows LiveID サービス/リッチクライアント (Active) SOAPWeb サービス WS-Trust WS-Trustアプリ WS-Trust SAML/SWT SWT REST Web サービス OAuth/ WRAP 2.0 SWT OAuth/ WRAP 2.0 SWT対応アプリ 365. AppFabric ACS V2 の準備 AD FS 連携時のクレームの流れ Windows Azure アプリ AppFabric ACS V2 Token Token 変換 属性 属性 属性 属性 属性 属性 属性 属性 属性 属性 属性 属性 Token 変換 Token 属性 属性 属性 属性 属性 属性 属性 属性 属性 属性 属性 属性 AD FS 2.0 AD DS 366. AppFabric ACS V2 の役割 AD FS 2.0 との SSOの流れ 信頼 7 9 WIF 信頼 クラウド オンプレミス 1 AD DS AD FS2.0 8 4 5 3 2 6 WIF:Windows Identity Foundation 367. セキュリティトークンの署名と暗号化について AppFabric ACS V2 IdP RP 信頼 信頼 metadata metadata metadata metadata トークンフォーマット 署名 署名 複合化 暗号化 暗号化 複合化 SAML 2.0 SAML 2.0 X.509 Private Key X.509 Public Key X.509 Public Key X.509 .cer X.509 (.cer) SAML 2.0 X.509 Private Key SAML 1.1 SAML 1.1 X.509 (.cer) SAML 1.1 X.509 .cer X.509 Private Key X.509 Public Key X.509 Public Key X.509 Private Key SWT SWT SWT 256-bit symmetric signing key 256-bit symmetric signing key 369. Namespace の作成 ① AppFabric ACS V2 の準備 Windows Azure ポータルに移動し、Service Bus、Access Control Service& Caching をクリック 371. Namespace の作成 ③ AppFabric ACS V2 の準備 Namespace を指定する。ここで指定した名前が AppFabric ACS の WEBサイト名になる。 https://<Namespace>.accesscontrol.appfabriclabs.com/ 「Active」になったら使用可能 373. AppFabric ACS V2 の準備 AppFabricACS 管理サイトの機能 Azureアプリケーションの登録 主に使用するメニュー Identity Provider の登録 クレームルールの登録 セキュリティトークンの署名、暗号化のための証明書の登録 ACS から Active にセキュリティトークンを発行する場合に使用するユーザーIDを管理 管理ポータルにアクセスすることができるユーザーIDを設定 独自プログラムからの AppFabricACS 管理サービスへのアクセスを 許可するユーザーIDを登録する カスタムログオン画面やエンドポイントのURLを確認する画面 379. AD FS 2.0 との連携 AD FS 2.0 との連携イメージ AD FS 2.0 Windows Azure アプリ AppFabric ACS V2 クレーム発行 クレーム変換 AD FS 2.0 クレーム送付 クレーム発行 属性 Redirect Active Directory 企業ネットワーク 380. 19.AD FS 2.0 と ACS V2 の連携構築 クレーム対応アプリケーションの作成とWindows Azure への登録 ACS V2 の Identity Provider に AD FS 2.0 を登録する アプリケーションを AppFabric ACS V2 に登録する AD FS 2.0 に AppFabric ACS V2 を登録する 381. AD FS 2.0 と ACS V2 の連携 AppFabric ACS V2 と AD FS2.0 の連携手順 アプリケーションの作成とWindowsAzure への登録 AppFabric ACS V2 のメタデータを登録(STS参照の追加) ※ あとはAD FS 2.0 の場合と同じ AD FS 2.0 側 Active Directory を構築 AD FS 2.0 を構築 RP(証明書利用者)として AppFabricACS を登録(メタデータの登録) クレームルールを登録 AppFabricACS V2 側 AD FS 2.0 のエンドポイントを Identity Provider として登録(メタデータの登録) クレームルールを登録 382. AD FS 2.0 と ACS V2 の連携 これからやる作業 AD FS への登録 STS参照の追加 信頼 信頼 AppFabric ACSV2 Web アプリケーション AD FS 2.0 383. Windows Azure アプリ AppFabric ACS V2 信頼 信頼 STS参照先を変更 AD FS 2.0 ここの設定 クレーム対応アプリケーションの作成とWindows Azure への登録 387. Windows Azure アプリ AppFabric ACS V2 ここの設定 信頼 信頼 済 済 AD FS 2.0 ACS V2 の Identity ProviderにAD FS 2.0 を登録する 388. ACS V2 の Identity Providerに AD FS 2.0 を登録する AD FS 2.0 のメタデータをテキストファイルに保存しておく https://<ADFSServer>/federationmetadata/2007-06/federationmetadata.xml ソースファイルを表示して、テキストファイルで保存 389. ACS V2 の Identity Providerに AD FS 2.0 を登録する ACS V2 の Identity Provider に AD FS 2.0 を登録する ① 390. ACS V2 の Identity Providerに AD FS 2.0 を登録する ACS V2 の Identity Provider に AD FS 2.0 を登録する ② Identity Provider の識別名。ADFS2.0は複数登録することが可能なので、識別しやすい名前を指定する AD FS 2.0 のメタデータを指定する。URL の場合には AppFabricがアクセス可能なサーバーである必要がある。 Identity Provider の選択画面に表示される識別名 Identity Provider の選択画面に表示されるロゴ画像 利用者に対して、ログオン時にEmailアドレスを強制的に入力させたい場合には、ここのメアドのサフィックス(microsoft.com)を指定する。セミコロンで複数指定可能。 このIdentity Provider を使用する アプリケーションを指定する 391. ACS V2 の Identity Providerに AD FS 2.0 を登録する ACS V2 の Identity Provider に AD FS 2.0 を登録する ③ 392. ACS V2 の Identity Providerに AD FS 2.0 を登録する ACS V2 の Identity Provider に AD FS 2.0 を登録する ④ クレームルールを生成する まだルールは無い 393. ACS V2 の Identity Providerに AD FS 2.0 を登録する ACS V2 の Identity Provider に AD FS 2.0 を登録する ⑤ メタデータを元に自動生成されたクレーム クレームとして emailaddressが発行されることが記載されている 394. ACS V2 の Identity Providerに AD FS 2.0 を登録する AppFabric ACSV2 の Rule IF(Rule Condition) Claim Issuer Input Claim Type Input Claim Value Then(Rule Actions) Output Claim Type Output Claim Value もし ○○から発行された ○○というクレームタイプに ○○という値が入っていたら そのときは ○○というクレームタイプに ○○という値を入れて発行する 395. ACS V2 の Identity Providerに AD FS 2.0 を登録する AppFabric ACS に登録されているクレームルールの例 AppFabricに対するクレームの発行者 つまりIdentity Provider AppFabric に対して入力方向のクレームタイプ AppFabric に対して入力方向のクレームタイプに格納されているべき値 入力条件を満たしたときに発行されるクレームタイプ(出力方向のクレーム) 出力方向のクレームに格納される値 396. Windows Azure アプリ AppFabric ACS V2 信頼 信頼 済 済 済 AD FS 2.0 ここの設定 アプリケーションをAppFabricACSV2 に登録する 399. アプリケーションをAppFabricACSV2 に登録する WEBアプリケーションの登録 ③ セキュリティトークンのフォーマット(SAML2.0/SAML1.1/SWT) セキュリティトークンを暗号化するかどうか セキュリティトークンの有効期間(秒) Azure アプリケーションと関連付ける Identity Provider。 「Identity Providers」メニューで登録した IdP が表示される。規定では「Windows LiveID」のみ。 適用するクレーム変換ルール。複数のアプリケーションで1つのルールを共有することも可能。 AD FS 2.0 の登録時に作成hしたルールを選択する。 トークンの署名に使用する証明書ファイル 規定は「規定の証明書」 400. Windows Azure アプリ AppFabric ACS V2 ここの設定 信頼 信頼 済 済 済 AD FS 2.0 AD FS 2.0に証明書利用者としてACSV2を登録する 404. AD FS 2.0に証明書利用者としてACSV2 を登録する AD FS 2.0 に 証明書利用者として ACS を登録する ③ 規定で「すべてのユーザーにクレームの発行を許可するか否か」を設定する(発行承認規則)。許可した場合には、クレームルール(要求規則)の設定を使用してクレームの発行条件を設定する必要がある。 407. SSOの流れ 信頼 7 9 WIF 信頼 クラウド オンプレミス 1 AD DS AD FS2.0 8 4 5 3 2 6 WIF:Windows Identity Foundation 408. 20.Google と ACS V2 の連携構築 AppFabric ACS V2 側 Identity Provider の登録 Rule の登録 409. Identity Provider との連携 ~ Google との連携AppFabric ACS V2 と Google の連携手順 Google 側 なにもなし!(ユーザーがアカウントを持っていればよい) AppFabricACS V2 側 Identity Provider の登録 Rule の登録