前回の[WIF] ADfS2.0 を使用する クレーム対応 Web アプリケーションを作成する その1に続いて ADFS2.0 を使用する クレームベース認証 ASP.NET Web Form アプリケーションを作成してみます。アプリケーションを作成したので、ADFS2.0 の設定を行います。

ASP.NET Web Form でクレームベース認証を行う手順を記載していますが、 ASP.NET MVC でも基本的には同じです。

クレーム認証を使用するWebアプリケーションを作成し FederationMetadata.xml を作成したので、 ADFS2.0 で証明書利用者信頼の設定を行います。Webアプリケーション側が一方的に STS を使用するようにセットアップしても、 セキュリティートークンサービスはトークンを発行してくれません。STS側でも アプリケーションを証明書の利用者として登録しておく必要があります。

自己署名の証明書を使用している場合、カスタムWebアプリケーションのhttpsで使用する 証明書をADFS2.0がインストールされたマシンの証明書ストアに、また、 ADFS2.0 のhttps で使用する証明書およびトークンの署名に使用する証明書がwebアプリケーションのマシンの証明書ストアに信頼済み証明書としてインポート済みであることとします。

1. ADFS2.0の証明書利用者信頼の追加

ADFS2.0がインストールされたマシンにログインします。 管理ツールの AD FS 2.0 の管理 で管理スナップインを起動します。下図管理ツールスナップインが起動します。右側操作ペインの 証明書利用者信頼の追加 をクリックします。

証明書利用者信頼の追加ウィザードが起動します。開始 ボタンをクリックします。

データソースの選択 で、 オンラインまたはローカル ネットワークで公開されている、証明書利用者についてのデータをインポートする が選択されていることを確認します。フェデレーション メタデータのアドレスにWebアプリケーションのURL を設定します。 次へ ボタンをクリックします。

次へで失敗する場合は、 サイトにアクセスできることを確認してください。統合パイプラインモードで動作する場合は アプリの httpModules が削除されていることを確認してください。

Webアプリケーションにアクセスできない場合や、FederationMetadata.xml を公開しない場合は、Webアプリケーション側で作成したFederationMetadata.xml を ADFS2.0 のサーバーにコピーし、 証明書利用者についてのデータをファイルからインポートする を選択して ファイルを指定します。

証明書利用者の表示名を設定します。下図ではサーバーのDNS 名に Webアプリケーション名をつけた文字列にしています。次へ ボタンをクリックします。

発行承認規則の選択画面が表示されます。既定で選択されている すべてのユーザーに対してこの証明書利用者へのアクセスを許可する が選択されていることを確認します。次へ ボタンをクリックします。

信頼の追加の準備完了画面が表示されます。 次へ ボタンをクリックします。

ここで、FederationMetadata.xml の内容の確認が行われます。

もし、[WIF] ADfS2.0 を使用する クレーム対応 Web アプリケーションを作成する その1で、UPNのクレームを要求するように FederationMetadata.xml を再作成したときに重複する要求(既定で作成されるname と role) を削除していない場合、重複するエントリを設定できません というダイアログが表示されます。 FederationMetadata.xml の ClaimType 要素で重複するエントリが存在しないことを確認してください。

証明書利用者信頼の追加ウィザードの完了画面が表示されます。"ウィザードの終了時にこの証明書利用者信頼の[要求規則の編集] ダイアログを開く" にチェックがついたままの状態で 閉じるボタンをクリックします。

続いて、 要求規則の編集画面が表示されます。アプリケーションでは name, role, upn クレームを要求するように設定しているので、STS で名前、役割、UPN をトークンに含めるように発行変換規則を編集します。 発行変換規則の 規則の追加 ボタンをクリックします。

要求規則の編集画面が表示されない場合、AD FS 2.0 の管理スナップインの左側ペインの 信頼関係→証明書利用者信頼 を選択し、中央ペインから対象の証明書利用者を選択し、操作ペインから要求規則の編集 をクリックして要求規則の編集ダイアログを表示します。

変換要求規則の追加ウィザードが表示されます。 規則の種類の選択で 入力方向の要求を変換を選択します。 次へボタンをクリックします。

要求規則に 名前(name) を表す 任意の名前を設定します。下例では Name としています。 入力方向の要求の種類に Windows アカウント名 を選択します。出力方向の要求の種類で 名前 を選択します。(*が先頭についているのは証明書利用者のWebアプリケーションで 必須のクレームとしてマークされている要求のためです。) OK ボタンをクリックします。

引き続き、 役割とユーザプリンシパル名用の発行規則を設定します。 発行変換規則の 規則の追加 ボタンをクリックします。返還要求規則の追加ウィザードで、 LDAP 属性を要求として送信 を選択します。次へボタンをクリックします。

要求規則名で UPN をクレーム用の要求規則を表す任意の名前を設定します。下例では UPN としています。属性ストアに Active Directory を選択します。 下図のように LDAP 属性 で User-Principal-Name を選択します。 出力方向の要求の種類で UPN を選択します。完了ボタンをクリックします。

最後に役割(role) 用の発行変換規則を追加します。 再度、発行変換規則発行変換規則ダイアログの 発行変換規則タブの 規則の追加 ボタンをクリックします。変換要求規則の追加ウィザードの規則の種類の選択画面で 要求規則テンプレートに LDAP 属性を要求として送信を選択します。次へボタンをクリックします。

role クレーム要求規則であることを表す任意の名前を 要求規則名に設定します。下例では ロール としています。属性ストアに Active Directory を選択します。 LDAP 属性で Token-Groups - ドメイン名 を含む を選択します。出力方向の要求の種類に 役割 を選択します。完了ボタンをクリックします。

以上で クレームの発行規則の編集は完了です。

 

クレーム認証を使用するアプリケーションの証明書でエラーが発生する場合は Webアプリで使用する https の証明書がADFS2.0側にインポートされていることを確認してください。
動作確認が行える段階になりました。詳細は[WIF] ADFS2.0 を使用する クレーム対応 Web アプリケーションを作成する その3 を参照してください。