Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

3/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.1

on

  • 3,473 views

[構築作業 中編] アプリケーション編 ...

[構築作業 中編] アプリケーション編
5. クレーム対応アプリとは?
6. クレーム対応アプリの作成と展開 ~ オンプレミス編
- 展開先 IIS の準備
- 開発環境の準備
- アプリケーションの開発
- IIS にアプリを展開

Statistics

Views

Total Views
3,473
Views on SlideShare
2,625
Embed Views
848

Actions

Likes
1
Downloads
69
Comments
1

3 Embeds 848

http://blogs.technet.com 846
http://webcache.googleusercontent.com 1
http://131.253.14.66 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • なぜ、フェデレーションとかクレームという考え方が出現したのか… アプリケーションの中には独自の認証 DB を持つものもあるがここでは除外する。あくまでディレクトリサービスと連携することを前提。
  • アプリ側には STS と通信するためのプロトコルが必要。ただしこのプロトコルは非常に簡易的なもの
  • アプリケーションがクレウド上に展開されていても考え方は同じ

3/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.1 3/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.1 Presentation Transcript

  • クレーム対応アプリケーションとは
  • 「認証の分離」とその限界 アプリケーション アプリケーション これまでの方式 多くのアプリケーションが「認証」を分離してきたが…
  • 「認証分離」の限界
    • 認証プロトコルの違い
    • Identity 管理ポリシーの違い
    • アプリケーション側の対応
    • Single Sign-On/Off への適用
    強い絆 強い絆 強い絆 強い絆 情報 情報 情報 情報 情報 情報 Active Directory プロトコル アプリ 1 プロトコル 情報の整形 OpenLDAP プロトコル 情報の解釈 アプリ 2 プロトコル 情報の解釈 情報の整形
  • 解決への考察
    • フェデレーション信頼 による素結合
    • STS によりアプリケーション側の処理を削減
    • 情報は セキュリティトークン に格納して受け渡し
    STS STS STS STS 情報 情報 情報 情報 情報 情報 プロトコル プロトコル フェデレーション信頼 Active Directory プロトコル アプリ 1 プロトコル 情報の整形 OpenLDAP プロトコル 情報の解釈 アプリ 2 プロトコル 情報の整形 情報の解釈
  • AD FS 2.0 と WIF の役割 WIF AD FS 2.0
    • AD FS 2.0 がユーザーのロールを管理
    • アプリケーションは受け取ったロールを解釈するだけ
    WIF : Windows Identity Foundation STS STS Active Directory プロトコル アプリ 1 プロトコル 情報の整形 情報の解釈 情報 情報 情報 プロトコル 信頼
  • 認証 / ロール管理からの分離 アプリケーション アプリケーション アプリケーション これまでの方式 クレームに対応
  • WIF アプリケーションの構造
    • WIF (Windows Identity Foundation) を使用して セキュリティー トークンからクレームを取り出す
    • WIF は WS-Federation/WS-Trust をサポート
    トークン 各種処理 ブラウザー ASP.NET Windows Identity Foundation .NET Framework 4 AD FS 2.0 クレームの評価 ロール判定 ロールは既にトークンに セットされているので 評価するだけで OK
  • クレームの構造と識別方法 これらの値で クレームを識別する Microsoft.IdentityModel.Claims http://msdn.microsoft.com/ja-jp/library/microsoft.identitymodel.claims.aspx Claim s Claim ClaimType Value Issuer OriginalIssuer ValueType subject Claim Claim Claim
  • サポートされているプロトコルとトークン形式
    • パッシブ SAML WebSSO
      • SAML 2.0 トークン
    • パッシブ WS-Federation
      • SAML 1.1 トークン
    • アクティブ WS-Trust (CardSpace 対応含む )
      • SAML 2.0 トークン
      • SAML 1.1 トークン
    AD FS 2.0 WIF
  • クレーム対応アプリケーションの作成と展開 ~ オンプレミス 編
    • まずは オンプレミスの IIS に展開してみる
    • 展開先サーバーの準備
    • 開発環境の準備
    • アプリケーションの開発
    • AD FS 2.0 との信頼関係確立
    • アプリケーションの展開
  • 実施手順
    • 展開先サーバーの準備
      • アプリケーション展開先の IIS をセットアップ
        • IIS インストール
        • WIF ランタイム
        • WIF SDK
      • 自己署名証明書の作成
      • SSL を有効にする
      • アプリケーションプールを作成
    • 開発環境の準備
      • Visual Studio のインストール
      • Windows Identity Framework ランタイム のインストール
      • Windows Identity Framework SDK のインストール
      • WIF 対応アプリケーション用テンプレートを複製
    • アプリケーションの開発
      • Visual Studio 起動
      • “ Claims-Aware ASP.NET” テンプレートを選択
      • AD FS 2.0 との信頼関係を確立
        • アプリケーション側の作業
      • コーディング
    • アプリケーションの展開
      • IIS にアプリケーションを発行
      • AD FS 2.0 との信頼関係を確立
        • AD FS 2.0 側の作業
    済 済 済 済
  • 展開先サーバーの準備
    • クレーム対応アプリケーションの作成と展開~ オンプレミス 編
  • 展開先サーバーの準備 ~ 自己署名証明書の作成
  • 展開先サーバーの準備 ~ SSL を有効にする
  • 展開先サーバーの準備 ~ アプリケーションプールの作成
  • 開発環境の準備
    • クレーム対応アプリケーションの作成と展開~ オンプレミス 編
  • 事前にインストールしておくもの
    • Windows 7 + Visual Studio 2010 の場合
    • Windows Azure Tools for Microsoft Visual Studio 1.2 ( 2010 年 6 月)
      • VSCloudService.exe
      • VSCloudService.VS100.ja-jp.msi (言語パック)
      • ※ Windows Azure SDK 1.2 も一緒にインストールされます
    • 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 ※ 自己署名証明書を作成する場合に必要
  • WIF 対応アプリケーション用テンプレートを複製 < マイドキュメント >Visual Studio 2010TemplatesProject TemplatesVisual C# %Program Files(x86)%Windows Identity Foundation SDKv4.0Visual Studio Extensions10.0 ├ csClaimsAwareASPNETSite.zip ├ csClaimsAwareWCFSite.zip ├ csSTSASPNETSite.zip └ csSTSWCFSite.zip コピー WIF を使用するための テンプレートが追加される
  • アプリケーションの開発
    • クレーム対応アプリケーションの作成と展開~ オンプレミス 編
  • 管理者として VS を実行 OR
  • “ Claims-Aware ASP.NET” テンプレートを選択 [ ファイル ]-[ 新規作成 ]-[Web サイト ] [Visual C#] を選択 IIS 7.5 では FPSE が使えないので とりあえずローカルに作成 あとで IIS に発行する
  • Claims-Aware ASP.NET テンプレート の外観
  • Claims-Aware ASP.NET テンプレートの Web.config (抜粋) <add name=&quot;ClaimsPrincipalHttpModule&quot; type=&quot; Microsoft.IdentityModel.Web.ClaimsPrincipalHttpModule , Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&quot; preCondition=&quot;managedHandler“ />
  • Claims-Aware ASP.NET テンプレートの default.aspx.cs (抜粋) IClaimsPrincipal claimsPrincipal = Page.User as IClaimsPrincipal; IClaimsIdentity claimsIdentity = ( IClaimsIdentity )claimsPrincipal.Identity; (略) foreach ( Claim claim in claimsIdentity.Claims ) { newRow = new TableRow(); newClaimTypeCell = new TableCell(); newClaimTypeCell.Text = claim.ClaimType ; newClaimValueCell = new TableCell(); newClaimValueCell.Text = claim.Value ; newRow.Cells.Add(newClaimTypeCell); newRow.Cells.Add(newClaimValueCell); claimsTable.Rows.Add(newRow); } 今回はこのコードを そのまま使います
  • customErrors mode=“0ff” デバッグしやすいように以下の対応をしておきましょう
  • AD FS 2.0 との信頼関係確立
    • クレーム対応アプリケーションの作成と展開~ オンプレミス 編
  • AD FS 2.0 との信頼関係について 信頼 Metadata Metadata URI URI
    • 精神的には
      • IdP 側 の Identity/Role 管理責任を信頼
      • RP 側の クレーム管理責任を信頼
    • 物理的には
      • メタデータ / 証明書 / 暗号化キーを 事前に 交換
        • お互いの「すり替わり」を防止
        • データの横取りを防止
    「信頼」とは何か? RP/SP IdP/CP
  • 「アプリケーション側」の設定 ① プロジェクトを右クリック - [STS 参照の追加 ] 「 AD FS 2.0 のメタデータを取り込む」
  • 「アプリケーション側」の設定 ② 展開後のアプリケーションの URL フェデレーションユーティリティ が起動する
  • 「アプリケーション側」の設定 ③ 「既存の STS を使う」に AD FS 2.0 のメタデータを指定する 「 https://tfadfs.tf.com/ 」まで入力してクリックすると自動的に補完 指定するのは NLB クラスターのホスト名 https://tfadfs.tf.com/ ~
  • 「アプリケーション側」の設定 ④ 今回は自己発行証明書なので「チェックしない」
  • 「アプリケーション側」の設定 ⑤ IIS の SSL 証明書が使われる
  • 「アプリケーション側」の設定 ⑥ AD FS 2.0 のメタデータに記載されている、「必須な」「使用可能な」 クレームタイプの一覧が表示される AD FS 2.0 で用意された FederationMetadata.xml (抜粋) AD FS 側の都合で変更される可能性がある
  • 「アプリケーション側」の設定 ⑦ AD FS 2.0 のメタデータを定期的に取り込むかどうかを指定する
  • 「アプリケーション側」の設定 ⑧ STS 参照追加後のプロジェクト アプリ自身のメタデータが生成される AD FS 2.0 側に取り込む必要がある ※ AD FS 2.0 のメタデータではない 取り込んだ AD FS 2.0 用メタデータをもとに、 AD FS 2.0 と通信し認証 / 承認 するための定義が大量に追記されている
  • IIS にアプリケーションを展開
    • クレーム対応アプリケーションの作成と展開~ オンプレミス 編
  • IIS にアプリケーションを発行 ① (注意) この操作ではファイルがコピーされるだけ。 別途 IIS 上でアプリケーションの設定が必要
  • IIS にアプリケーションを発行 ② ( IIS 側での操作) 発行したファイルをアプリケーションに変換する Visual Studio から複製したファイル群
  • IIS にアプリケーションを発行 ③ 事前に作成しておいたアプリケーションプールを選択する アイコンに注目
  • アプリとの信頼関係の確立( AD FS 2.0 側) ① [AD FS 2.0 管理コンソール ] - [AD FS 2.0] - [ 信頼関係 ] - [ 証明書利用者信頼 ] を右クリックして [ 証明書利用者信頼の追加 ] を選択 証明書利用者信頼( RP/SP )の登録
  • アプリとの信頼関係の確立( AD FS 2.0 側) ② 発行したアプリケーションの FederationMetadata.xml ファイルのフルパスを指定する
  • アプリとの信頼関係の確立( AD FS 2.0 側) ③ ホストしているサーバー名とアプリケーション名が分かるようにしてあると吉 「発行承認規則」(後述)の初期値。 最初は制限を付けないほうが良い。
  • アプリとの信頼関係の確立( AD FS 2.0 側) ④
  • 実行してみる
    • AD FS 2.0 側ではクレームの定義を何もしていないため、既定のクレームのみが表示されている
    • 認証メソッド
    • 認証日時
  • エラーが出たら ① HTTP エラー 500.21 - Internal Server Error ハンドラ &quot;PageHandlerFactory-Integrated&quot; のモジュール リストにあるモジュール &quot;ManagedPipelineHandler&quot; が正しくありません。 可能性のある原因 : ASP.NET がインストールされていないか、完全にインストールされていません。 構成に誤字があります。 不適切な必須条件評価が存在します。 不明な属性です <compilation debug=&quot;true&quot; targetFramework=&quot;4.0&quot;> <assemblies> </assemblies> </compilation> C:windowsMicrosoft.NETFrameworkv4.0.30319aspnet_regiis.exe -i 対処法: ASP.NET 4.0 を登録する C:windowsMicrosoft.NETFrameworkv4.0.30319aspnet_regiis.exe -i x86 x64
  • エラーが出たら ② 対処法:作成したアプリケーションのアプリケーションプールの設定を変更する TRUE に設定