HTTPSSO (BizTalk Server サンプル)
HTTPSSO サンプルは、Microsoft BizTalk Server HTTP アダプターで Enterprise Single Sign-On (SSO) 機能を使用する方法を示しています。
Note
このサンプルは、64 ビット オペレーティング システムに対応していません。
このサンプルの処理
このサンプルでは、SSO と BizTalk HTTP 送信アダプターおよび受信アダプターを使用して、SSO により、Windows が資格情報を認証した後に、ユーザーが Microsoft Windows 以外のシステムにログオンするために他の資格情報を指定せずに済む方法をシミュレートするエンドツーエンド シナリオを示します。
このサンプルでは、SSO の管理モジュールとマッピング モジュールを使用して、SSO の相互運用機能クライアント DLL により、関連アプリケーションと SSO マッピングも作成します。
エンドツーエンド シナリオの次の側面を実装することで、SSO の使用を示します。
Windows 統合認証を使用するように構成された、Microsoft インターネット インフォメーション サービス (IIS) 仮想ディレクトリで表されるユーザー インターフェイス。
基本認証を使用するように構成された IIS 仮想ディレクトリで表されるバックエンド システム。
SQL サンプル データベース Northwind で表されるバックエンド データベース。
このサンプルでは、BizTalk Serverと SSO がインストールされていることを前提としています。 Windows XP Professional では、BizTalk Server、IIS、SSO、COM+ の管理者権限が必要です。 SSO 管理者、BizTalk Server 管理者、および BizTalk 分離ホスト ユーザーの各 Windows グループのメンバであることも必要です。
このサンプルを効果的に使用するには、SSO と BizTalk HTTP アダプタに関する十分な知識があることを前提としています。 たとえば、SSO のコンテキストで関連アプリケーションとは何かを理解しておく必要があります。 これらのトピックの詳細については、「 SSO の使用」を参照してください。 「HTTP アダプター」も参照してください。
構成が完了すると、このサンプルは次のように動作します。
このサンプルのユーザー インターフェイスを構成するウィザード アプリケーションで [完了] をクリックすると、インターネット エクスプローラーのインスタンスが起動し、BizTalk HTTP Receive DLL の URL が渡されます。
BizTalk Server は SSO を利用して、基本認証で構成された IIS 仮想ディレクトリのファイル EmployeeData.aspx に HTTP 要求を効率的に転送します。 この ASPX ファイルは、Windows 以外のバックエンド システムへのエントリ ポイントをシミュレートします。 SSO を使用しているため、HTTP 要求には、シミュレートされたバックエンド システムへのログオン アカウントをシミュレートする構成済みの資格情報が含まれます。
ASPX ファイルは、変更された SQL サンプル データベース Northwind にアクセスし、シミュレートされたバックエンド システム資格情報に対応する従業員データを取得します。
ASPX ファイルは、取得された従業員データを HTTP 応答で返します。
BizTalk Server は HTTP 応答を Internet Explorer にルーティングし、Internet Explorer は返された従業員データをユーザーに表示します。
BizTalk Server と SSO を省略し、ファイル EmployeeData.aspx を直接参照すると、[Windows] ダイアログ ボックスが表示され、資格情報を要求されます。
コマンドライン ユーティリティ ssomanage.exe を使用して、関連アプリケーションやユーザー マッピングの作成などの SSO を構成する方法を示すサンプルについては、「Manage (BizTalk Server Sample)」を参照してください。
このサンプルの場所
<サンプル パス>\SSO\HTTPSSO\
次の表は、このサンプルのファイルとその目的を示しています。
ファイル | 説明 |
---|---|
AssemblyInfo.cs、SsoSample.csproj | この HTTP SSO サンプルのプロジェクト ファイルと関連ファイルです。 |
SsoSample.cs | このサンプルの多くを構成する HTTP SSO グラフィカル アプリケーションの最上位の Microsoft Visual C# ソース ファイルです。 このファイルには、 SsoConfigurator という名前のクラスの SSO 構成コードが含まれています。これは最終的にこのサンプルのポイントです。 |
\Scripts フォルダー内: EmployeeData.aspx | 従業員が直接または SSO を使用して個人データを表示する要求を開始したときに、バックエンド データベース (この場合は SQL Northwind データベース) へのアクセスと照会に使用されます。 |
\Scripts フォルダー内:ValidateUser.aspx | ユーザーを検証し、直接または SSO を使用してそのユーザーが検証されたかどうかを報告する単純なテストです。 |
\UI フォルダー: AddApplication.cs、AddApplication.resx、AddMapping.cs、AddMapping.resx、App.ico、BtsPage.cs、BtsPage.resx、ExecutePage.cs、ExecutePage.resx、FinishPage.cs、 FinishPage.resx、IisPage.cs、IisPage.resx、InfoPage.cs、InfoPage.resx、PageBase.cs、PageBase.resx、SsoPage.cs、SsoPage.resx、SsoSampleWizard.cs、SsoSampleWizard.resx、WelcomePage.cs、WelcomePage.resx、WorkPage.cs、WorkPage.resxx | このサンプルの多くを構成する HTTP SSO グラフィカル アプリケーションの補助 Visual C# ソース ファイル、および関連する XML 形式のリソース ファイルです。 |
このサンプルのビルドと初期化
HTTPSSO サンプルをビルドして初期化するには
Microsoft インターネット インフォメーション サービス (IIS) が基本認証に使用できるローカル Windows アカウントを作成します。 SSO は、Windows ドメイン アカウントをこのローカル Windows アカウントにマップします。 たとえば、自分の姓を使用してローカル Windows アカウントを作成します。
Note
ドメイン コントローラ上で実行している場合は、ドメイン アカウントを作成し、ログオンしたドメイン アカウントをこのアカウントにマップできます。
Microsoft SQL Server Enterprise Manager を使用して、Northwind サンプル データベースの Employees テーブルを開き、作成したローカル Windows アカウントに対応する行 (さまざまな列のサンプル データを含む) を追加します。 Employees テーブルの LastName 列に追加した値は、手順 1. で追加したローカル Windows アカウントのユーザー名と同じである必要があります。
ASP.NET アカウント (ASPNET) に Northwind データベースの読み取り特権があることを確認します。
Visual Studio を使用して、プロジェクト ファイル SsoSample.csproj を開きます。
[ビルド] メニューの [ソリューションのビルド] をクリックします。
Note
ビルドを続行する前に、ソリューションを保存するように要求されます。
プロジェクトの次の BizTalk アセンブリ参照が見つからない場合は、アセンブリ参照を削除し、表示された場所から再追加してから、もう一度ビルドします。
Microsoft.BizTalk.ExplorerOM。 既定では、Microsoft.BizTalk.ExplorerOM.dll ファイルはフォルダー \Program Files (x86)\Microsoft BizTalk Server <VERSION>Developer Tools\ にあります。
Microsoft.BizTalk.SSOClient.Interop。 既定では、Microsoft.BizTalk.Interop.SSOClient.dll ファイルは ProgramFiles>\Common Files\Enterprise シングル サインオン\ フォルダー<にあります。
これにより、次のフォルダに実行可能ファイル SsoSample.exe が作成されます。
<サンプル パス>\SSO\HTTPSSO\bin\Debug\
このサンプルの実行
Note
ワーカー プロセス分離モードを使用して IIS 6.0 でこのサンプルを実行すると、両方の仮想ディレクトリに対してアプリケーション プールが作成されます。 Windows アカウントでこれらの 2 つのアプリケーション プールの ID を手動で構成する必要があります (ID はインターネット インフォメーション サービス マネージャで構成できます)。
HTTPSSO サンプルを実行するには
次のフォルダにある実行可能ファイル SsoSample.exe を実行します。
<サンプル パス>\SSO\HTTPSSO\bin\Debug\
このサンプルのウィザードが開きます。
[ようこそ] ページで、IIS、SSO、BizTalk を構成するための既定の設定をそのまま使用し、[ 次へ] をクリックします。
[IIS 構成] ページで、作成する 2 つの IIS 仮想ディレクトリの既定の設定をそのまま使用し、[ 次へ] をクリックします。
[SSO 構成] ページで、関連アプリケーションの既定の設定をそのまま使用します。この設定には、[ アプリケーションの追加 ] ボタンを使用してアクセスできます。
[SSO 構成] ページで、[ マッピングの追加] ボタンを使用してアクセスできる、ユーザー マッピングの既定の設定のほとんどを受け入れます。 このサンプルをビルドおよび初期化したときに追加したローカル Windows アカウントに基づいて、次の 2 つの設定に値を指定します。
設定 値 外部ユーザー名 追加したローカルの Windows ユーザー アカウント名に設定されます。 外部ユーザーのパスワード 追加したローカルの Windows ユーザー アカウントのパスワードに設定されます。 [SSO 構成] ページで、[ 次へ] をクリックします。
[BizTalk 構成] ページで、送受信ポートの既定の設定をそのまま使用し、[ 次へ] をクリックします。
Note
Northwinds SQL データベースの Employee テーブルから取得されたサンプル データではなく、単純なユーザー検証を表示する場合は、既定の送信ポート設定を EmployeeData.aspx から ValidateUser.aspx に変更できます。 この変更により、手順 9 で [完了 ] をクリックした後にブラウザーに表示される出力の性質が変更されます。
実行される IIS、SSO、および BizTalk の各構成に対応する状態メッセージを確認します。 このフェーズで実行されるコードは、SsoSample.cs ファイルで定義されている IisConfigurator、 SsoConfigurator、 および BtsConfigurator クラスで確認できます。 構成が完了したら、[ 次へ] をクリックします。
ウィザード アプリケーションの最後のページで、[ブラウザーの開始] の既定の設定 (選択したチェック ボックスと URL
http://localhost/SsoSampleBizTalkHttpReceive/BTSHttpReceive.dll?<message/>
を含むテキスト ボックス) をそのまま使用し、[完了] をクリックします。Internet Explorer のインスタンスが開き、Northwinds SQL データベースの Employee テーブルに追加した従業員データのサンプルが表示されます。
比較のために、BizTalk と SSO を省略し、次の ASPX ファイルのいずれかを直接参照します。
http://localhost/SsoSampleServerApplication/ValidateUser.aspx
http://localhost/SsoSampleServerApplication/EmployeeData.aspx
どちらの場合も、BizTalk と SSO を省略しているため、IIS から認証情報を要求されます (前に作成したローカル Windows アカウントの情報を使用します)。
説明
SsoSample.exe ウィザード アプリケーションは、2 つの IIS 仮想ディレクトリを構成します。
最初の仮想ディレクトリは Windows 統合認証で構成され、BizTalk HTTP 受信 ISAPI 拡張に対応します。 次のフォルダにある .dll ファイル BTSHTTPReceive.dll に関連付ける必要があります。
<インストール パス>\HttpReceive
2 番目の仮想ディレクトリは基本認証で構成され、ユーザーを認証するためにユーザー ID とパスワードを受け取るバックエンド システムをシミュレートします。 次のフォルダにある ASPX ファイル ValidateUser.aspx と EmployeeData.aspx のいずれかに関連付ける必要があります。
<サンプル パス>\SSO\HTTPSSO\Scripts
SsoSample.exe ウィザード アプリケーションを使用して、1 つ以上の関連アプリケーションを構成できます。 これらの関連アプリケーションごとに、1 つまたは複数のユーザー マッピングを作成できます。 これらの各ユーザー マッピングは、Windows ユーザー アカウントを、特定のバックエンド システムへのアクセスに使用するアカウントにマップします。 このサンプルでは、そのアカウントは、実際のバックエンド システムをシミュレートする 2 番目の IIS 仮想ディレクトリでの認証に使用する、ローカル Windows アカウントです。
このサンプルを再実行するには、複数の選択肢があります。
Internet Explorer で、次の URL を直接参照します。
http://localhost/SsoSampleBizTalkHttpReceive/BTSHttpReceive.dll?<message/>
ウィザード アプリケーションを再実行します。ただし、最初のページの構成チェック ボックスをすべてオフにします。
ウィザード アプリケーションを再実行します。最初のページの構成チェック ボックスはすべてオンのままにしますが、構成エラーが発生しないように、その他の BizTalk アイテム、関連アプリケーションなどを慎重かつ適切に構成します。
このサンプルからクリーンアップするには、次の手順を使用します。
このサンプルからクリーンアップするには
ローカル Windows アカウントを削除するなど、適宜、実行した手動構成を元に戻します。
仮想ディレクトリに対応する IIS アプリケーションを削除した後、このサンプルで作成された IIS 仮想ディレクトリを削除します。
BizTalk 管理コンソールを使用して、参加解除した後、このサンプルに関連付けられている送信ポートを削除します。 このサンプルに関連付けられている受信ポート (およびその受信場所) を削除します。
(\Program Files\Common Files\Enterprise Single Sign-On\ にある) Ssomanage アプリケーションを使用して、このサンプルの SSO アプリケーションを削除します。
Ssomanage –deleteapp SsoSampleApplication