セキュリティのための複数 ArcGIS Server Web インスタンス
ArcGIS Server インスタンスでは、ユーザの場所、ロールの場所、認証方法の組み合わせが 1 種類しかサポートされません(ユーザとロールの詳細については、「ユーザとロールの設定の概要」をご参照ください)。複数のタイプの認証またはユーザ/ロール ストアをサポートする必要がある場合は、複数の ArcGIS Server インスタンスを設定できます。
通常、各 ArcGIS Server システムはインスタンスが 1 つで、それが単一の SOM(Server Object Manager)に結び付けられます。このセクションでは、複数の ArcGIS Server インスタンスを単一の SOM に結び付ける構成について説明します。
たとえば、内部ネットワークのユーザには、Windows アカウントを使用したログインを許可するとします。しかし、インターネット上の外部ユーザには、SQL Server データベースのアカウントを設定するとします。ArcGIS Server インスタンスはユーザの場所を 1 つしかサポートしないため、ユーザのタイプごとに異なるインスタンスをセットアップすることになります。
複数インスタンスを管理するときは、2 つの問題について考える必要があります。
- サービスに対するインターネット接続の権限は SOM に保管されます。複数インスタンスが SOM と連携する場合、各インスタンスは同じ権限セットを共有することになります。権限はロールに基づいて決められるため、各インスタンスのロール、すなわちユーザが正しく動作するように、権限を慎重に管理する必要があります。詳細については、この後の「複数 ArcGIS Server インスタンスの権限の管理」をご参照ください。
- サービスの WMS(Web Mapping Service)機能を有効にした場合、サービスの機能情報はすべてのインスタンスで共有されます。サービスの オンライン リソース URL はインスタンスの 1 つに設定されます。詳細については、Knowledge Base article 35672, Why does the OnlineResource URL in the WMS capabilities use a different ArcGIS Web instance? をご参照ください。
ArcGIS Server インスタンスの追加
インスタンスの追加と削除を行うユーティリティが <ArcGIS Server インストール ディレクトリ>\DotNet\AddInstance.exe です。この実行ファイルを Windows エクスプローラでダブルクリックすると、ツールが開きます。表示されるウィザードの指示に従って、新しいインスタンスを追加します。
指定したインスタンスの名前は、他のユーザがそのインスタンスにアクセスするときに使用する URL に反映されます。たとえば、インスタンスの名前を「ArcGIS2」と入力すると、サービス URL は http://myserver/ArcGIS2/services のようになります。
ウィザードを完了したあと、インスタンスの作成に数分かかることがあります。あとでインスタンスを削除する場合は、同じツールを使用して削除できます。
新しいインスタンスの使用
新しいインスタンスは固有の ArcGIS Server Manager を持ちます。ArcGIS Server Manager を開くには、[スタート] → [すべてのプログラム] → [ArcGIS] → [ArcGIS Server for the Microsoft .NET Framework] → [ArcGIS Server Manager <インスタンス名>] の順にクリックします。新しい Manager を使用して、新しいインスタンスのユーザ ストアとロール ストアを設定します。[サービス] パネルには元の Manager と同じサービスが表示され、サービスの権限も同じです。複数インスタンスにまたがる権限の管理に関する重要な情報については、次のセクションをご参照ください。
新しいインスタンスでは、別のインスタンスによって作成された Web アプリケーションが表示されません。各インスタンスでは、そのインスタンスで作成した独自のアプリケーション リストが維持されます。
各インスタンスは、インスタンスを作成した IIS Web サーバ ディレクトリに配置されます。たとえば、ArcGIS2 という名前の新しいインスタンスをデフォルト Web サイトのポート 80 で作成し、IIS サーバがデフォルトの場所を使用している場合、インスタンスの場所は C:\Inetpub\wwwroot\ArcGIS2 になります。新しいインスタンスは、Rest、Services、Security も含めて、元のインスタンスと同じフォルダ構造を持ちます。
複数の ArcGIS Server インスタンスの権限の管理
権限は SOM に保管されるため、SOM を共有する複数の ArcGIS Server インスタンスは、サービスの権限セットも同じものを共有します。サービスまたはフォルダの [権限] ボタンをクリックすると、どちらかのインスタンスの Manager によって追加されたロールの権限が表示されます。
フォルダとサービスの権限は、両方のインスタンスのユーザがサービスに適切にアクセスできるように管理する必要があります。権限はユーザではなく、ロールに基づいて決められるため、必要なサービスに対して各インスタンスのロールが許可された状態にしておく必要があります。どちらかの Manager を使用する管理者は許可されたロールについて同じリストを見ているため、他の Manager で許可されたロールを間違って削除してしまうこともありえます。
ロールと権限を管理するときは、以下の 2 つの手法のどちらかを採用することをお勧めします。
- 両方のインスタンスで同じロール名を使用し、この共有ロールに各インスタンスでユーザを追加します。この方法が適切なのは、両方のインスタンスのユーザが同じ権限ルールでサービスにアクセスできるようにする場合です。たとえば、自分のサーバの Windows グループに Planners という名前のグループを追加し、そのグループに Windows ユーザを追加したとします。そして、ロール用に SQL Server を使用する Manager でも、Planners ロールを追加し、そのロールに SQL Server ユーザを追加します。ここで、Planners ロールにサービスへのアクセスを許可すると、両方のインスタンスのユーザが、Planners に設定された 1 つの権限ルールのもとでサービスを使用できるようになります。
- 2 つのインスタンスで明確に異なるロール名を使用します。この方法が適切なのは、各インスタンスで異なるユーザ ルールを使用する場合です。たとえば、内部ユーザ用には InternalEditors という名前の Windows グループを作成し、Manager ではロール用に SQL Server を使用することを指定して、ExternalViewers という名前のロールを追加します。Internal および External という接頭辞は、各ロールの場所が異なることを示しています。そのため、あるインスタンスで Manager を使用する人が別のインスタンスのユーザのために追加されたロールを間違えて削除することはなくなります。
インスタンスの 1 つが ASP.NET メンバーシップを使用している場合は、3 つの組み込みロール(Everyone、Authenticated User、Anonymous)がすべてのインスタンスにおよぶことに注意してください。たとえば、あるインスタンスでは Microsoft SQL Server メンバーシップ プロバイダを使用していて、別のインスタンスでは Windows オペレーティング システムのユーザとグループを使用しているとします。この場合、SQL Server インスタンスでルート Web サービス フォルダに対するアクセス権を付与すると、すべての Windows ユーザが接続時にすべての Web サービスを見ることができるようになります。