サービスへのインターネット接続のセキュリティ
サービスを作成すると、Web アクセスが自動的に有効になります。つまり、ユーザがサーバへの ArcGIS Server Internet 接続を確立すれば、サービスを使用できるようになります。Web アクセスを完全に無効にするか、指定したユーザのグループにアクセスを制限することが可能です。また、Web 経由でサービスを使用するときに実行できるオペレーションの種類を制限することもできます。このトピックでは、次の項目を取り上げます。
agsadmin グループと agsusers グループはインターネット接続では使用されません。これらのグループはローカル接続をセキュリティで保護するために使用されます。ローカル接続とインターネット接続のセキュリティは、どちらも全体的なセキュリティの一部でなければなりません。詳細については、「サービスへのローカル接続のセキュリティ」をご参照ください。
Web アクセスの無効化
インターネット クライアントをサービスにアクセスさせたくない場合は、Web アクセスを明示的に無効にする必要があります。
Manager で Web アクセスを無効にする
ArcGIS Server Manager でサービスへの Web アクセスを無効にするには、次の手順に従います。これらの手順を実行する前に、サービスを停止する必要があります。
- Manager で [サービス] タブをクリックします。
- サービス リストから Web アクセスを無効にするサービスを選択し、[編集] リンクをクリックします。
- [ケーパビリティ] タブをクリックします。
- [Web アクセスの有効化] のチェックを外します。
- [保存] をクリック。
ArcCatalog で Web アクセスを無効にする
ArcCatalog でサービスへの Web アクセスを無効にするには、次の手順に従います。これらの手順を実行する前に、サービスを停止する必要があります。
- サーバへの管理者接続を作成します。詳細については、「ArcCatalog での ArcGIS Server への管理者接続の作成」をご参照ください。
- Web アクセスを無効にしたいサービスを選択します。
- サービスを右クリックし、[停止] をクリックします。
- サービスを右クリックし、[Web アクセスを無効化] をクリックします。
- サービスを右クリックし、[開始] をクリックします。
マップ サービスの場合、上記の方法では Mapping ケーパビリティの Web アクセスが無効になるだけです。[サービス プロパティ] ダイアログ ボックスの [ケーパビリティ] タブで、他のケーパビリティの Web アクセスを無効にすることができます。
フォルダおよびサービスに対する HTTPS の要求
ArcGIS Server サービスに接続するクライアントが接続に HTTPS を使用することを必須にできます。こうするとクライアントとサーバ間の通信がすべて暗号化され、転送時に誰かが通信を傍受しても、データは暗号化されて読み取ることができません。さらにサービスへのアクセスを特定のユーザに限定する場合は、以下の「サービスにアクセスできるユーザの制限」をご参照ください。
HTTPS の要件は、個別のサービス レベルではなく、フォルダ レベルで設定されます。個々のサービスだけに HTTPS を必須にして、サービスまたはフォルダ全体で必須にしない場合は、新しいフォルダを作成して、そのフォルダをサービスに追加します。
クライアントが HTTPS でリソースをリクエストできるようにするには、Web サーバに SSL 証明書をインストールする必要があります。詳細については、「SSL の設定の詳細」をご参照ください。
Manager を使用してフォルダに対する HTTPS を必須にするには、以下の手順に従います。
- ArcGIS Server Manager にログインして、[サービス] をクリックします。
- サーバ フォルダの [場所] ドロップダウン ボックスで、HTTPS を必須にするフォルダを選択します。サーバ全体で HTTPS を必須にするには、サーバ(ルート)を選択します。
- [フォルダ管理] をクリックし、ドロップダウン リストで [プロパティ] をクリックします。
- 表示される [フォルダ プロパティ] ダイアログ ボックスで、[暗号化 Web アクセスの使用] にチェックして、[OK] をクリックします。
ArcCatalog でフォルダの HTTPS を必須にすることもできます。
- ArcCatalog を起動して、[GIS Servers] を展開し、管理者サーバ接続をダブルクリックします。必要に応じて、[ArcGIS Server を追加] をダブルクリックし、[GIS サービスの管理] をクリックして、サーバ名と URL(たとえば、http://myserver.example.com/arcgis/services)を入力して、管理者接続を追加します。
- 必要に応じて、サーバ接続を展開して、HTTPS を必須にするフォルダを見つけます。
- フォルダを右クリックして、[プロパティ] を選択します(すべてのサービスで SSL を必須にする場合は、サーバを右クリックして [ルート フォルダのプロパティ] をクリックします)。
- [フォルダ プロパティ] ダイアログ ボックスで、[暗号化 Web アクセスの使用] にチェックして、[OK] をクリックします。
フォルダで HTTPS を必須にすると、クライアント アプリケーションでそのフォルダにあるサービスを使用するには、https:// で始まる URL を使用する必要があることに注意してください。ユーザが ArcCatalog を使用してサーバに接続し、URL に https を使用しなかった場合、通常はユーザがそのフォルダにアクセスすることができる場合でも、フォルダは表示されません。
サービスにアクセスできるユーザの制限
ArcGIS Server Manager を使用して、インターネット接続経由でサービスにアクセスできるユーザを制限することができます。そのためには、ユーザとロールを定義し、特定のインターネット サービスにアクセスできるロールを指定します。ユーザとロールの作成方法については、「ユーザとロールの設定の概要」をご参照ください。サービスのセキュリティを設定するためには、最低でも、1 人のユーザと、ユーザが 1 人含まれたロールを 1 つ追加する必要があります。また、割り当てられた権限を実際に有効にするためには、サービスのセキュリティを有効にするための追加の手順を実行しなければなりません。
GIS サービスのセキュリティを実装する手順は次のとおりです。
- ユーザとロールの格納先を設定し、ユーザとロールを追加します。詳細については、「ユーザとロールの設定の概要」をご参照ください。
- フォルダとサービスの権限を追加します。詳細については、「サービスまたはフォルダの権限の設定」をご参照ください。
- サービスのセキュリティを有効にします。詳細については、「サービスのセキュリティの有効化」をご参照ください。この設定を行うまで、サービスへの Web アクセスに制限は適用されません。
フォルダとサービスに権限を設定することができます。フォルダ内のサービスは、フォルダで設定された権限を継承します。ルート レベルで権限を設定すると、すべてのサービスがその権限を継承します。サービスまたはフォルダが継承したロールを削除することにより、継承した権限を上書きすることができます。
先のステップ 3 を完了してサービスのセキュリティを有効にするまで、Web アクセスが有効化されたサービスにユーザがアクセスすることはできません。また、セキュリティを有効にした後は、(1) ロールの権限をサービスまたはフォルダに追加し、(2) サービスへのアクセスが許可されたロールのアカウントでユーザがログインするまで、すべてのユーザがサービスにアクセスできなくなります。したがって、セキュリティを有効にする前に、サービスの権限を設定する必要があります。ユーザ アカウントの格納場所によっては、サービスまたはフォルダへのアクセスをすべてのユーザに許可するために Anonymous ロールを利用できることがあります。
セキュリティ手法の 1 つとして、サーバのルートに一般的な権限を割り当て、その後にフォルダとサービスの権限を制限する方法が挙げられます。もう 1 つの方法は、ルートで権限を制限し、特定のロールに特定のフォルダやサービスへのアクセスを許可することです。
ユーザが複数のロールのメンバであり、ロールのいずれかにサービスへのアクセスが許可されている場合、そのユーザはサービスにアクセスすることができます。Manager には、ロールまたはユーザのアクセスを明示的に拒否する機能はありません。このため、サービスやフォルダに許可したいアクセスとロールが一致するよう、慎重に設計を行う必要があります。
サービスまたはフォルダの権限の設定
サービスまたはフォルダにアクセスできるユーザの権限を設定するには、次の手順に従います。
- Manager の [サービス] タブをクリックし、サーバ上のサービスのリストを表示します。フォルダまたはフォルダ内のサービスの権限を設定する場合は、[場所] ドロップダウン リストを使用して、表示をフォルダに変更します。
- サービスまたはフォルダの [権限] ダイアログ ボックスを開きます。
- フォルダの権限を設定するには、[フォルダ管理] をクリックして、表示されたリストで [権限] をクリックします。
- サービスの権限を設定するには、サービスの権限(鍵)アイコンをクリックします。
- [権限] ダイアログ ボックスが表示されます。左側のリストには利用可能なロールが表示され、右側のボックスには現在アクセスが許可されているロールのリストが表示されます。
- 1 つのサービスまたはフォルダ内の複数のサービスへのアクセスをロールに許可するには、利用可能なロールのリストでロールをクリックし、[追加] ボタンをクリックして、アクセスが許可されるロールのリストに追加します。
ロールのアクセスを削除するには、[許可するロール] リストでロールをクリックし、[削除] をクリックします。ロールが [利用可能なロール] リストへ移動します
メモ:ロールが削除されているか、現在のロール ストアに存在しない場合は、[権限] ダイアログ ボックスを再び表示したときに、そのロールは表示されません)。
- 権限を設定したら、[保存] をクリックして変更を保存し、サービスに適用します。サービスへの変更を取りやめるには、[キャンセル] をクリックします。
Everyone、Authenticated Users、Anonymous ロールがユーザ ストアに追加されている場合は、それらをサービスやフォルダに追加することができます。それらが親フォルダから継承されている場合は、削除することもできます。Everyone ロールにアクセスが許可されている場合は、ログイン情報を入力するかどうかに関係なく、すべてのユーザがサービス(またはフォルダ内の複数のサービス)にアクセスすることができます。Everyone ロールにアクセスが許可されている場合、アクセスが許可されるロールのリストに他のロールを追加する必要はありません。Authenticated Users ロールにアクセスが許可されている場合は、ユーザ ストア内のすべてのユーザにアクセスが許可されます。こうした特別なロールの詳細については、ロール プロバイダ(SQL Server または カスタム プロバイダ)の「ユーザとロールの設定」をご参照ください。ロールが Windows グループである場合は、グループ メンバーシップをオペレーティング システムから判断しなければならないため、これらのロールは利用できません。
[権限] ダイアログ ボックスに次のメッセージが表示された場合、サービスのセキュリティはまだ有効になっていません。
「注意: GIS サービスのセキュリティが有効ではありません。サービスのセキュリティを有効にするには、セキュリティ設定を参照してください。」
設定している権限は、セキュリティを有効にするまで適用されません。セキュリティを有効にする方法については、「サービスのセキュリティの有効化」をご参照ください。
サービスの権限ルールは、ArcGIS Server によって内部に格納されます。これらのルールは ArcGIS/Services Web アプリケーションには格納されません。権限は、<ArcGIS インストール ディレクトリ>\server\user\cfg フォルダに *.sec ファイルとして格納されます。フォルダに対する権限が設定されている場合、そのフォルダには Folder.sec ファイルが含まれます。サービスに対する権限が設定されている場合、フォルダにはサービスの *.cfg ファイルに一致する名前と *.sec 拡張子を持つファイルが含まれます。フォルダまたはサービスに対する権限が設定されていない場合、そのフォルダまたはサービスに対する *.sec ファイルは存在しません。*.sec ファイルの形式については、「セキュリティの構成ファイル」をご参照ください。
ArcGIS/Services Web アプリケーションでアクセス ルールを手動で設定しないでください。多くの ASP.NET Web アプリケーションへのアクセスは、Web アプリケーションの web.config ファイルに認証ルールを追加することによって制御されます。ArcGIS Server は、ルールを web.config ファイルではなく内部で格納するようになっています。ルールが Services アプリケーションの web.config ファイルに追加された場合、Manager のセキュリティ設定が無効になることがあります。
権限の機能に関する詳細については、以下のトピックをご参照ください。
サービスのセキュリティの有効化
セキュリティを有効にすると、設定した権限ルールがサービスへのインターネット接続に適用されます。権限ルールを設定していても、セキュリティを有効にするまでは、すべてのサービスがすべてのユーザに公開されます。
サービスのセキュリティを有効にする前に、サービスに適用したい権限ルールを設定する必要があります。サービスに権限ルールを適用する前にセキュリティを有効にすると、すべてのユーザがすべてのサービスにインターネット接続できなくなります。
セキュリティを一度有効にしたら、Manager でセキュリティを無効にすることはできません。これは、サービスのセキュリティを誤って無効にするのを防ぐための措置です。詳細については、この後の説明をご参照ください。
この手順は、GIS サービスのセキュリティにのみ適用されます。Web アプリケーションのセキュリティは、各アプリケーションに個別に適用されます。詳細については、「Web アプリケーションのセキュリティ」をご参照ください。
サービスのセキュリティを有効にするには、次の手順に従います。
- GIS サービスの権限ルールを設定します。詳細については、先の「サービスまたはフォルダの権限の設定」セクションをご参照ください。Everyone ロールを使用すると、すべてのユーザに 1 つ以上のサービスへのアクセスを許可することができます。
- Manager で [セキュリティ] → [設定] をクリックします。[GIS サービスのセキュリティ] で [有効] をクリックします。サービスのセキュリティ設定に関する情報が含まれたダイアログ ボックスが表示されます。表示された内容を読み、セキュリティを有効にする意味を理解してください。セキュリティを有効する準備ができている場合は、[サービスのセキュリティを有効化] をクリックします。それ以外の場合は、[キャンセル] をクリックします。
- ユーザを Windows ユーザとして格納する場合は、Services アプリケーションへの匿名アクセスを無効にしなければなりません。「IIS での ArcGIS Web サービスへの匿名アクセスの無効化」をご参照ください。
- サービスをテストして、アクセスが許可されているロールに属しているユーザがサービスにアクセスできることを確認します。必要であれば、「サービスまたはフォルダの権限の設定」の説明に従って、権限を調整します。
サービスのセキュリティの無効化
GIS サービスのセキュリティを一度有効にしたら、Manager を使ってセキュリティを無効にすることはできません。これは、セキュリティを誤って無効にして、サービスにアクセスできなくなるのを防ぐための措置です。後からセキュリティを無効にする必要が生じた場合は、以下の手順で無効にすることができます。
これらの手順を実行すると、すべてのユーザがログイン情報を提供せずにインターネット接続を通じて GIS サービスに接続できるようになります。
- [コントロール パネル] → [管理ツール] → [サービス] の順にクリックして、[サービス] 管理コンソールを開きます。
- [ArcGIS Server サーバ オブジェクト マネージャ] サービスを右クリックして、[停止] をクリックします。注意:
ArcGIS Server を停止する前に以下の変更を加えた場合、ArcGIS Server が停止したときに変更内容が有効になります。
- テキスト エディタ(メモ帳など)または XML エディタを使用して、SOM コンピュータで Server.dat ファイルを開きます。このファイルは <ArcGIS Server インストール ディレクトリ>\server\system にあります。
- <Server> 要素内の次の要素を、
<SecurityEnabled>true</SecurityEnabled>
次のように変更します。<SecurityEnabled>false</SecurityEnabled>
ファイルを保存します。 - テキスト エディタまたは XML エディタを使用して、C:\Inetpub\wwwroot\ArcGIS\Services にある web.config ファイルを開きます(ArcGIS Web サービスを別の場所にインストールした場合は、それにあわせてパスが異なります)。
- <appSettings> セクションで次の行を探します。
<add key="RequireToken" value="True" />
そして次のように変更します。<add key="RequireToken" value="False" />
ファイルを保存します。 - Rest フォルダにある web.config ファイルに対しても先の 2 つの手順を繰り返し、C:\Inetpub\wwwroot\ArcGIS ディレクトリの Tokens フォルダに対しても同様に設定します。
- Windows ユーザに対してセキュリティが設定されている場合は、IIS の ArcGIS Server Web インスタンスの Services フォルダと Rest フォルダに対する匿名アクセスを再度有効にします。方法については、「IIS での ArcGIS Web サービスへの匿名アクセスの無効化」をご参照ください。手順 3 では、匿名アクセスを有効に設定します。これを Services ディレクトリと Rest ディレクトリの両方で行います。
- [サービス] 管理コンソールに戻り、[ArcGIS Server サーバ オブジェクト マネージャ] サービスを右クリックして、[開始] をクリックします。
- [World Wide Web Publishing Service] を右クリックして、[再起動] をクリックします。
セキュリティを再び有効にするには、「サービスのセキュリティの有効化」の手順に従います。
サービスで実行できるオペレーションの制限
Web サービスの使用方法を管理しやすくするために、サービスの種類ごとに許可されるオペレーションがあり、それによってユーザが呼び出せるメソッドが決定します。ユーザがサービスを完全に使用できるようにするために、すべてのオペレーションを許可することや、マップ内のデータの検索やジオデータベースからのデータの取得など、特定のオペレーションを無効にして、ユーザがそれらを実行できないようにすることもできます。
[サービス プロパティ] ダイアログ ボックスの [ケーパビリティ] タブで、許可される操作を設定することができます。各オペレーションに含まれるメソッドについては、「サービスのチューニングと構成」をご参照ください。