「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>WS-Federation]] * 目次 [#g0f79145] #contents *概要 [#q6608b2f] WIF:Windows Identity Foundation -Windows Identity Foundation の概要~ https://msdn.microsoft.com/ja-jp/library/ee748475.aspx --Windows Identity Foundation (WIF) は、[[クレームベース認証]]に対応のアプリケーションを構築するためのフレームワークです。 --このフレームワークは、WS-Trust プロトコルと [[WS-Federation]] プロトコルを抽象化し、セキュリティ トークン サービスと要求に対応したアプリケーションを構築するための API を開発者に提供します。 --アプリケーションでは、WIF を使用して、STSから発行されたトークンを処理し、RP(Web アプリケーションまたは Web サービス)でクレームベースの決定を下すことができます。 *FedUtil [#x7272b98] RPと STSとの間で信頼を簡単に確立できる。 **準備 [#i887b60a] ***STS側の構築 [#a2f6dc3d] -STS([[ADFS>フェデレーション サービス (AD FS)]])側の構築を完了させておく。 -STSのエンドポイントのFQDNとサーバ証明書のCN(Common Name)は一致させておく。 ***前提ソフトウェアをインストール [#la3c9614] RPで以下の前提ソフトウェアをインストールする。 -IIS -ASP.NET 3.5 and ASP.NET 4.5 -.NET Framework 3.5 Features and Windows Identity Foundation 3.5 options. ***SDKのダウンロードとインストール [#r6ea59df] RPでSDKのダウンロードとインストールをする。 -Download the Windows Identity Foundation SDK~ これは、サンプルのクレームベース認証アプリケーションを含みます。~ http://www.microsoft.com/download/details.aspx?id=4451 -WindowsIdentityFoundation-SDK-4.0.msi ファイルを実行して、~ Windows Identity Foundation SDK 4.0をデフォルトオプションでインストール。 ***STS側のエンドポイントの証明書を検証 [#ydb0d746] STS側の認証連携を行うHTTPSのエンドポイントの証明書が~ 自己証明書の場合、RPから以下の手順を実施して検証できる。 -フェデレーション・メタデータを交換するSTSのHTTPSエンドポイントに~ インターネット・エクスプローラーを使用してアクセスする。 -証明書が自己証明書の場合、アドレスバーに証明書のエラーが表示されるのでこれをクリックする。 -[証明書は信頼できません]ダイアログ・ボックスで[証明書の表示]を押下。 -[証明書のインストール]ボタンを押下して以下のストアに証明書をインストールする。 --ストア:[ローカル コンピューター]の[信頼されたルート証明機関] ***サンプルのクレームベース認証アプリケーションをIIS配下でホスト [#d777cdea] 以下のサンプルを利用可能 -[[Windows Identity Foundation SDK>http://www.microsoft.com/download/details.aspx?id=4451]]に付属のサンプル。 -https://github.com/OpenTouryoProject/SampleProgram/tree/master/ASPNET/ID-Federation/ClaimsWeb_sample **FedUtil.exeを実行 [#if202ede] WIFのインストール・ディレクトリに移動してFedUtil.exeを実行する。 -C:\Program Files (x86)\Windows Identity Foundation SDK\v4.0 folder. -FedUtil.exeファイルをダブル・クリックして実行する。 Webアプリケーション・プロジェクトを右クリックし、~ [Add STS reference]を選択でもFedUtil.exeを実行可能なもよう。 **FedUtil.exeで設定 [#l3f054ab] ***Welcome画面 [#f576a873] -[Application configuration location]テキスト・ボックス~ Webアプリケーションのweb.configを設定する。 -[Application URI]テキスト・ボックス~ WebアプリケーションのURL(仮想ディレクトリ)を設定する。 -[Next]ボタンをクリック。 ***[Security Token Service]画面 [#s1b4185c] -[Use an existing STS]オプション・ボタンを選択する。 -STS WS-Federation metadata document locationテキスト・ボックスに入力~ e.g. : https://[ADFSのFQDN名]/federationmetadata/2007-06/federationmetadata.xml -[Next]ボタンをクリック。 ***[STS signing certificate chain validation error]画面 [#b03d522e] -証明書が自己証明書の場合、~ [Disable certificate chain validation]オプション・ボタンを選択する。 -証明書を正規の認証局が発行した場合、~ [Enable certificate chain validation]オプション・ボタンを選択する。 -[Next]ボタンをクリック。 ***[Security token encryption]画面 [#e526657d] -暗号化が不要~ [No encryption]オプション・ボタンを選択する。 -暗号化が必要~ [Encryption]オプション・ボタンを選択する。 --証明書を選択する。 -[Next]ボタンをクリック。 ***[Offered claims]画面 [#e10feee6] -ADFS2.0 (STS) から提供される クレームの一覧が表示される。 -[Next]ボタンをクリック。 ***[Summary]画面 [#lcb65153] Summary 画面が表示されるので、内容を確認して、 Finish ボタンをクリック。 ***結果の確認 [#qe970ae9] -web.config と FederationMetadata.xml が作成(or 更新) される。 --web.config ---claimTypeRequired 要素:要求するクレームの種類を変更できる。 --FederationMetadata.xml ---FedUtil.exe を /u オプションを指定してWeb.config の内容で FederationMetadata.xml を更新する。 %FEDUTILPATH%\FedUtil.exe /u Web.config -Trust managemet に Schedule a task to perform daily [[WS-Federation]] metadata updatesの日時更新タクスが登録される。 **参考 [#xa98b7ae] -FedUtil を使用した ASP.NET 証明書利用者アプリケーションから STS への信頼の確立~ https://msdn.microsoft.com/ja-jp/library/ee517285.aspx ***Netplanetes [#bf4d9913] -[WIF] ADFS2.0 を使用する クレーム対応 Web アプリケーションを作成する - Netplanetes --その1~ http://www.pine4.net/Memo/Article/Archives/408 --その2~ http://www.pine4.net/Memo/Article/Archives/409 --その3~ http://www.pine4.net/Memo/Article/Archives/410 ***サンプル [#ze5b2cba] -ASPNET/ID-Federation/ClaimsWeb_sample~ https://github.com/OpenTouryoProject/SampleProgram/tree/master/ASPNET/ID-Federation/ClaimsWeb_sample