Active Directory でのユーザー作成方法などについては Active Directory ステップバイステップ ガイド / ステップバイステップ ガイド : Active Directory の管理 などを参照ください。 |
| プロパティ | 上記設定 | 設定内容 |
|---|---|---|
| Data Source | DBSRV | 接続するデータベースサーバー名 |
| Initial Catalog | Event2005DB | 接続するデータベース名 |
| Integrated Security | TRUE | Windows 認証を使用 |
Web サービス アプリケーション実行ユーザー “EventWS” を IIS 6.0 ワーカープロセスで使用するために、アプリケーション サーバー ローカル グループ “IIS_WPG” のメンバーへ “EventWS” ユーザーを追加します。
[ コンピューターの管理 ] 管理ツールを起動し、左ペインより [ コンピュータの管理 ] - [ ローカル ユーザーとグループ ] - [ グループ ] を選択後、右ペインより “IIS_WPG” をダブルクリックし、 [ IIS_WPG のプロパティ ] ダイアログを表示します。
[ 追加 ] ボタンをクリックし、“MYCOMPANY\EventWS” (ドメイン名\ユーザー名) をメンバーへ追加します。

図 4. “IIS_WPG” メンバーへの追加
|
※ Web サービスを使用する場合、 ASP.NET のプロセス ID と要求 ID に記載されている通り、 %windir%\temp フォルダを Web サービス シリアル化関連処理で使用します。
今回のように IIS_WPG メンバーでワーカープロセスを実行している場合、%windir%\temp フォルダに対するアクセス許可が IIS_WPG についてはデフォルトで設定されていないため、 Web サービスの呼び出しに失敗します。 %windir%\temp フォルダに対して “NETWORK SERVICE” と同レベルのアクセス許可を与える必要があります。 |
新しいアプリケーション プールを作成し、実行ユーザーとして “EventWS” を設定します。
[ インターネット インフォメーション サービス (IIS) マネージャ ] を起動し、左ペインより [ インターネット インフォメーション サービス ] - [ (ローカルコンピュータ) ] - [ アプリケーション プール ]を選択後、右クリックにてコンテキスト メニューより [ 新規作成 ] - [ アプリケーション プール ] を選択し、 [ 新しいアプリケーション プールの追加 ] ダイアログを表示します。
ダイアログにて、[ アプリケーション プール ID ] へ “EventWSAppPool” を設定し新規アプリケーション プールを作成します。

図 5. 新規アプリケーション プール “EventWSAppPool” 作成
次に、作成した “EventWSAppPool を右クリック後、コンテキスト メニューより [ プロパティ ] を選択し [ EventWSAppPool のプロパティ] ダイアログを表示します。
[ 識別 ] タブにてアプリケーション プール ID のラジオボタン [ 構成可能 ] を選択後、ユーザー名およびパスワードへ “MYCOMPANY\EventWS” (ドメイン名\ユーザー名) およびパスワードを入力し、アプリケーション プール ID (アプリケーション プール 実行ユーザー) を設定します。

図 6. アプリケーション プール ID 設定
サービス コンポーネントのフォルダを仮想ディレクトリとして設定します。
[ インターネット インフォメーション サービス (IIS) マネージャ ] 左ペインより [ インターネット インフォメーション サービス ] - [ (ローカルコンピュータ) ] - [ Web サイト ] - [ 既定の Web サイト ] を選択後、右クリックにてコンテキスト メニューより [ 新規作成 ] - [ 仮想ディレクトリ ] を選択し、 [ 仮想ディレクトリの作成ウィザード ] ダイアログを表示します。
ウィザード形式のダイアログにて、下記の項目を設定します。
作成した仮想ディレクトリのアプリケーション プールを “EventWSAppPool” に設定します。
“EventSV” 仮想ディレクトリを右クリック後、コンテキスト メニューより [ プロパティ ] を選択し [ EventSV のプロパティ] ダイアログを表示します。
[ 仮想ディレクトリ ] タブにて [ アプリケーション プール ] の値を “EventWSAppPool” に設定します。

図 7. 仮想ディレクトリ / アプリケーション プール設定
作成した Web サイト "EventSV" への基本認証および SSL 通信の設定を行います。
基本認証の設定方法については、「10 行でズバリ !! Web サービスの認証 (VB)」などを参照ください。
基本認証を使用する場合は、パスワードなどの認証情報がクリアテキストが渡されるため、必ず SSL 通信などと併せて使用してください。 IIS にて SSL 通信を使用する場合は、サーバー証明書を始めとする各種設定が必要となります。詳細については 「セキュリティテスト用 SSL サーバーの構築 - ステップ バイ ステップ」 などを参照ください。

Web サーバー上へ Web アプリケーションを配置および Web アプリケーションに関する各種設定を下記の順序で行います。
Web アプリケーションをフォルダ毎 (C:\Inetpub\wwwroot\EventUIWeb など) Web サーバー上 (C:\Inetpub\wwwroot\EventUIWeb など) へコピーします。
アプリケーション構成ファイル (EventUIWeb\Web.config) へ Web サービスの URL を設定します。
<-xml version="1.0"->
<!--
メモ: このファイルを手動で編集する代わりに、Web 管理ツールを使用
…
machine.config.comments で確認できます。
-->
<configuration>
<appSettings>
<add key="SessionEntryWS.SessionEntry" value="https://APPSRV/EventSV/SessionEntry.asmx"/>
</appSettings>
…
Web アプリケーションのフォルダを仮想ディレクトリとして設定します。
[ インターネット インフォメーション サービス (IIS) マネージャ ] 左ペインより [ インターネット インフォメーション サービス ] - [ (ローカルコンピュータ) ] - [ Web サイト ] - [ 既定の Web サイト ] を選択後、右クリックにてコンテキスト メニューより [ 新規作成 ] - [ 仮想ディレクトリ ] を選択し、 [ 仮想ディレクトリの作成ウィザード ] ダイアログを表示します。
ウィザード形式のダイアログにて、下記の項目を設定します。

クライアントへ Windows アプリケーションを配置および Web サービスの URL の設定を行います。
クライアント上に “EventUIWeb.exe” および “EventUIWeb.exe.config” ファイルをコピー後、“EventUIWeb.exe.config” ファイル内の Web サービスの URL を設定します。
<configuration>
…
<applicationSettings>
<EventUIWin.My.MySettings>
<setting name="EventUIWin_SessionEntryWS_SessionEntry" serializeAs="String">
<value>https://192.168.0.10/EventSV/SessionEntry.asmx</value>
</setting>
</EventUIWin.My.MySettings>
…
ここまでで、分散アプリケーションの各サーバーへの配置および設定が完了しました。
アプリケーションを実行し正常に動作することを確認します。

このステップでは通信方式について今回実施した内容も含め再度確認します。
今回はアプリケーション構成ファイルを使用し、通信先のサーバー名などの設定を下記の通り実施しています。

図 8. アプリケーション構成ファイル設定項目
分散アプリケーションの通信方式としては、クライアント (および Web サーバー) とアプリケーション間では Web サービス、アプリケーション サーバーとデータベース サーバー間では SQL Server プロトコルを使用して通信を行い、いずれの通信も同期 / ステートレス (複数の呼び出しに亘りステートを保持しない) の方式で実施しています。

図 9. 通信方式

このステップではセキュリティ方式について今回実施した内容も含め再度確認します。
今回は Active Directory / SQL Server / IIS のプラットフォームが提供している各種セキュリティに関する設定を下記の通り実施しています。

図 10. セキュリティ概要
Active Directory については、アプリケーション サーバーとデータベース サーバー間の認証およびクライアント (および Web サーバー) とアプリケーション サーバーの認証の用途で使用しています。
SQL Server / IIS については、その用途に沿った形での設定を実施しています。
クライアントについては、今回はハードコーディングで固定ユーザーを使用していますが、実際にはユーザー名およびパスワードなどの入力を要求し、認証情報として直接的または間接的に利用するなどを行います。

図 11. 認証方式
※基本認証ではユーザー名およびパスワードがクリアテキストでネットワーク上に流れるので、必ず SSL 通信などの暗号化された通信を使用する必要があります。
このように、分散システムの構築を行う場合は、システム全体に亘る通信方式やセキュリティ方式などを考慮する必要があります。
分散アプリケーションの開発を行う場合、システムで採用する通信方式およびセキュリティ方式に応じた実装を行うと同時に、コンポーネント化による特定方式への依存部分の局所化や、柔軟な物理配置へ対応するためのアプリケーション構成ファイルの適切な使用などにより、再利用性が高いアプリケーションを構築することが可能です。
マイクロソフトでは、 .NET アプリケーション アーキテクチャ というガイダンスを公開しており、今回のステップ 7 シリーズで紹介した内容も含め、.NET で分散アプリケーションを構築するための各種ガイダンスが掲載されていますので、ぜひご参照ください。
「Windows Server 2003 と Internet Information Services (IIS) 6.0 でのアプリケーションの分離構成」
「ASP.NET と IIS の構成」
Top of Page