2010年1月12日火曜日

ADFS2.0 & WIF on AzureでオンプレミスとクラウドのSSO その1

エンタープライズ分野へのクラウド適用のキモはオンプレミスとクラウドの統合、という話がまことしやかに騒がれていますね。Azureに関してはAppFablicの実装が煮詰まってくればそのあたりの実現イメージもより湧いてくるのかも知れません。

とはいえ、まだAppFablicは未だCTPで、.NET Access Control ServiceでのSTS(Security Token Service)指定周りの仕様も柔らかい状態っぽいので、今出来ることという意味でAzure上でWIF(Windows Identity Foundation)+ADFS2.0の環境を動かしてみました。

また、同様にオンプレミスアプリケーションとしてWIF+ADFS2.0の環境を作り、結果的にオンプレミスアプリケーションとAzure上のアプリケーションのPassive FederationでのSSOが出来るような環境を作ってみます。















結果として、STS(ADFS2.0)で認証され、















オンプレミスアプリケーションにアクセスした状態で
















そのまま(認証なしで)Azure上のアプリケーションへアクセスします。


















少々長くなるので、下記のような構成でお送りいたします。

1.環境の準備
  今回用意した環境と各コンポーネントのセットアップ方法の解説を行います。

2.オンプレミスのアプリケーションを作成・発行する
  以前も一部解説しましたが、WIFがRCになって一部コードも変更になりましたので、改めてコードの解説をします。

3.Azure上のアプリケーションを作成・発行する
  基本的にオンプレミスのアプリケーションと同一コードで動きますが、Azure上での動作ならではの設定がありますので、そのあたりを重点的に解説します。
  また、Windows Azure Hosted Serviceに関する設定やデプロイについても解説します。

4.シングルサインオンしてみる
  作成した環境で実際に同じセキュリティトークンを使ったシングルサインオンが出来ることを確認します。



ということで今回は「1.環境の準備」をお送りします。

◆環境概要
今回用意したのは下記の2台のマシン(仮想マシン)です。

サーバ役割OSミドルウェア備考
STSサーバ認証、セキュリティトークンの発行を行うWindows Server 2008 R2ADFS2.0 RCドメインコントローラも兼ねる
オンプレミスアプリケーションサーバオンプレミスアプリケーションをホストするWindows 7 Ultimate(x64)・IIS
・Visual Studio 2008 Standard Edition SP1
Windows Identity Foundation 1.0
Windows Identity Foundation SDK
Identity Developer Training Kit(PDC2009)
Windows Azure Tools for Microsoft Visual Studio (November 2009)
開発環境も兼ねる



◆STSサーバのセットアップ

下記の流れでセットアップを行います。(Geneva Serverに比べて大分楽になりました)
1.OSのインストール
2.ADDSの役割追加
  ※DNSは自動で追加
3.ADFSのインストール
  ※WIF、IIS、PowerShellは自動で追加
4.IISで自己証明書の発行
5.ADFSのIdP設定

※ちなみにWIFおよびADFS2.0は更新プログラムとしてインストールされます。
 WIF:KB974405
 ADFS2.0:KB974408
※ADFS2.0からSQL Serverを使わずにWindows Internal Databaseをレポジトリに使うことが出来るようになりました。(デフォルトはWindows Internal Databse)


では、具体的な手順です。

1.OSのインストール
2.ADDSの役割追加
  ※DNSは自動で追加

このあたりはいつも通りで。ちなみに今回の環境は、
 ドメイン名:eidentity.local
 ドメインコントローラ名:ADFS20.eidentity.local
です。

3.ADFSのインストール

インストーラを実行すると、自動的に必要な環境(IISやPowerShell、Windows Internal Database)を含め整備されます。
インストール時に選択する項目は「Server Role」のみで、Federation serverとしてセットアップするか、Federation server proxyとしてセットアップするかを選択します。今回はFederation serverとしてセットアップします。


















インストールが完了するとADFSの管理コンソールが起動してきますが、実際の設定に入る前にIIS管理コンソールで自己証明書を作成して構成しておく必要があります。
今回は「adfs20.eidentity.local」というフレンドリ名で作成しています。















次にADFSのサーバ設定を実行します。
管理コンソールから「ADFS2.0 Federation Server Configuration Wizard」を実行します。
















以下の値を設定/選択します。

ステップ選択する値備考
WelcomeCreate a new Federation Service今回は既存のファームへの追加ではなく新規でサーバを構成します。
Select Deployment TypeStand-alone federation ServerADFS2.0からサーバファームを構成することが出来ますが、今回は単体で構成します。
Federation Service NameSSL certificateおよびFederation Service nameに先ほど作成した自己証明書を設定(一つしかインストールされていないので選択不可)

















設定が完了するとRelying partyの設定を要求されますが、これはアプリケーションを作ってから設定するのでこの段階では放置しておきます。

◆オンプレミスアプリケーションサーバ(兼開発環境)のセットアップ

下記の流れでセットアップを行います。
1.OSのインストール
  ドメインへの参加およびIISの役割追加を行います。
2.Visual Studio 2008、SP1のインストール
  C#、VB.NET、Web開発のインストールを行います。
3.WIF、WIF SDKのインストール
4.Identity Developer Training Kit(PDC2009)のインストール
  Azure上へデプロイする際の証明書を作成するのにネイティブ暗号化API(CAPICOM)を使います。もちろん単独でCAPICOMをダウンロードして手動で作成しても良いのですが、Training Kitにバッチファイルがあるのでそれを流用しました。
5.Windows Azure Tools for Microsoft Visual Studio (November 2009)のインストール

ただ、こちらはこの段階で特に込み入った設定をする必要もないので、順番にインストールをしていきます。


とりあえずここまででローカルに必要な環境は揃いましたので、次回はまずオンプレミスのWIF/ADFS連携のクレームベースのWebアプリケーションを作成します。

0 件のコメント: