Active Directoryを利用

図2●ユーザー企業の情報をディレクトリ・サーバーに一元管理し,i-BiGへのアクセス制御を容易に
i-BiGでは,ユーザー企業のアカウント情報やアクセス権限をディレクトリ・サーバーである「Active Directory」で一元管理する。これにより,アプリケーションやサービスの種類を問わず,Active Directoryとの統合認証機能を使ったアクセス制御が可能になる。

 採用したディレクトリ・サービスは,マイクロソフトがWindows2000 Serverに搭載するActive Directoryである。DMZ(非武装地帯)上にActive Directoryのドメインを構築し,i-BiGを構成するシステム・リソースを管理する(図2[拡大表示])。システムを構成する各種のサーバーをActive Directoryドメインのメンバー・サーバーにした。これにより,サーバー,Webページ,ビジネス・ロジック,データベースなどへのアクセスを,Active Directoryの情報に基づいて制御可能になる。一般にActive Directoryドメインは企業内に構築するものと考えがちだが,「ファイアウォールを適切に設定すれば,DMZ上に構築しても何ら問題はない」(インター・ギャラクシー・システムズの田村氏)。

 Active Directoryを採用したのは,同じマイクロソフトのサーバー製品群と連携させるのに都合がよかったからである。例えば,データベース製品である「SQL Server2000」や,EAI(エンタープライズ・アプリケーション統合)製品である「BizTalk Server2000」などには,Active Directoryと連携して動作する統合認証機能が搭載されている。製品をインストールする際に統合認証を選択すると,Active Directoryの認証機構やアクセス制御機構を利用するように自動構成される。

 このように構成したSQL Serverなどにアプリケーションを実装すれば,アプリケーション側では認証やアクセス制御の一切をActive Directoryに任せることができる。つまり,接続方法の違いに応じて独自の認証機能やアクセス制御機能などを作り込む必要がなくなる。

 稲畑産業では,i-BiGをWebサービス化する際に,このメリットが生きてきた。Webサービスでも,Webアプリケーションと同じように,HTTPのベーシック認証に基づき,Active Directoryを使ってアクセス可否を制御できたのである。伝送するXMLデータ中に認証情報を埋め込んでやりとりするなど,Webサービス専用の認証機構を実装する必要はなかった。

 ユーザー企業の認証情報をRDB(リレーショナル・データベース)に格納し,フォームを使ってログイン・ページを生成するようなWebアプリケーションを構築していたら,「Webサービス独自の認証機能を実装せざるを得なかったところだ」(インター・ギャラクシー・システムズの田村氏)。

 現在のところは使用していないが,i-BiG利用時のセキュリティを手軽に高められる点もメリットである。ユーザー企業の要望に応じて,i-BiGにアクセスするクライアントの認証にディジタル証明書が容易に使える。PKI(公開カギ基盤)技術に基づくディジタル証明書と,Active Directoryのユーザー認証とをマッピングする――というActive Directoryの機能を用いればよい。

WebサービスとWebアプリでコンポーネントを共通化

図3●既存のビジネス・コンポーネントを生かし,ユーザー企業の生産管理を支援する情報提供機能をWebサービス化
i-BiGでは,既存のビジネス・コンポーネントを生かしてWebサービス化している。具体的には,Visual Basic6.0のCOMクラスとして実装されたビジネス・コンポーネントを呼び出すC#クラスを開発。このC#クラスを,.NET Frameworkの機能でWebサービス化した。

 稲畑産業は,i-BiGを構築する際に,Webサービス化しやすいシステム設計を採用した。Webアプリケーションで使用するビジネス・ロジックなどをそのまま利用し,Webサービス・システムを構築している(図3[拡大表示])。

 外部アプリケーションからシステムを再利用しやすくするため,ビジネス・ロジックを含んだシステムの機能を「ビジネス・コンポーネント」として抽象化した。各ビジネス・コンポーネントは,サーバー側で接続ごとの状態を管理しないで済むような機能単位となるように設計した。これにより,WebアプリケーションとWebサービスでは,まったく同じビジネス・コンポーネントを利用できるようになった。

 実装上は,Visual Basic6.0を使い,ビジネス・コンポーネントをCOM+(コンポーネント・オブジェクト・モデル・プラス)コンポーネント化している。COM+コンポーネントを呼び出す.NETクラスをVisual Studio .NETなどで構築するだけで,簡単にWebサービスの“窓口”を構築できる仕掛けになっている。稲畑産業は,C#でWebサービス用の.NETクラスを構築した。COM+コンポーネントへのアクセス制御も,Active Directoryに一元化している。

i-BiG側で製品コードを変換

 ユーザー企業が利用しやすくなるように,各ユーザー企業が採用している製品コードなどをi-BiG側で相互変換する仕組みを搭載した。受発注先のコード体系に合わせて,i-BiGが自動的に製品コードなどを変換する仕組みである。ユーザー企業は,自社で採用している製品コードをそのまま使える。

 稲畑産業では当初,複数の企業間で製品を一貫して管理できるように,ユーザー企業と統一製品コードなどを決めることも検討した。しかし,統一製品コードを採用すると,ユーザー企業のアプリケーションを変更したり,各社の従業員を教育したりといった手間とコストがかかる。現実的な方法ではないと判断した。

 そこで,企業ごとの製品コードの違いを,i-BiG側で吸収する。i-BiGの内部では製品をGUID(グローバル・ユニーク識別子)で管理。それと各社の製品コードを対応させるテーブルを,i-BiG側に構築することにした。「一見すると地味な機能だが,接続しやすいシステムを構築するうえでインパクトは大きかった」(稲畑産業の新井氏)。