Apache Tomcat における ArcGIS Spatial Data Server のサービス管理 URL のセキュリティ
Apache Tomcat ファイル server.xml、tomcat-users.xml、および web.xml を変更して、特定のユーザだけが ArcGIS Spatial Data Server の URL を介してサービスを管理および表示できるようにします。
![ヒント ヒント](rsrc/tip.png)
また、運用環境のサイトには必ず SSL(Secure Sockets Layer)接続を使用する必要があります。この設定に関する情報については、Apache Tomcat のマニュアルをご参照ください。
Spatial Data Server のサイト内で実行されているサービスのカタログ全体は、ユーザおよびロールに基づいてフィルタすることができないことに注意してください。カタログを参照するどのユーザでも、すべてのサービスを表示できます。
サイトに Tomcat 認証を設定すると、ユーザがセキュリティで保護された Spatial Data Server インスタンスの管理 URL またはセキュリティで保護されたサービス URL を初めて参照するときに、ダイアログ ボックスが表示されます。ユーザは、アクセスするためにユーザ名とパスワードを入力する必要があります。正しい認証情報を入力すると、ユーザはその Web セッションの間、すべての URL を参照することができます。
Tomcat では、さまざまな認証方式を設定することができます。これは、web.xml ファイルの auth-method タグで設定します。これらのさまざまな方式を実装する方法については、Tomcat のドキュメントをご参照ください。
server.xml の変更
レルムでネストされたコンポーネントを $CATALINA_HOME/conf/server.xml ファイルの Engine、Host、または Context コンテナ内部に追加して、Tomcat インスタンスのセキュリティ レルムを有効にします。
この例では、MemoryRealm を使用して Tomcat のデフォルト レルムが有効化されています。
<Realm className="org.apache.catalina.realm.MemoryRealm" />
MemoryRealm は Web アプリケーションを開発する目的のみで使用してください。その他にも、運用 Web アプリケーションに使用できるレルムの実装があります。レルムの構成の詳細については、Tomcat のマニュアルをご参照ください。
tomcat-users.xml の変更
ロールと、そのロールに参加するユーザを宣言するためのエントリを追加します。
次の例では、2 つのロールと 3 人のユーザが定義されており、ユーザがロールに割り当てられています。
<role rolename="tomcat"/> <role rolename="role1"/> <user username="tomcatu" password="TCyoosir" roles="tomcat"/> <user username="superu" password="2$3cr3t" roles="tomcat,role1"/> <user username="user1" password="Y00zR0n3" roles="role1"/>
web.xml の変更
ArcGIS 10.1 Spatial Data Server for Java は Web アプリケーション アーカイブ(war)である arcgis.war としてインストールされています。このファイルは Java アーカイブ(*.jar)ファイルであり、JavaServer Pages、Java Servlets、Java クラス、XML ファイル、静的 HTML Web ページなどの Web アプリケーションを構成するファイルのコレクションを配布するために使用されます。
web.xml ファイルは、arcgis.war ファイルの一部です。web.xml ファイルを変更するには、war ファイルを展開し、web.xml を編集してから、再度 war ファイルを作成します。JDK をインストールして、war ファイルを展開および再作成できるようにします。
- arcgis.war ファイルのバックアップ コピーを作成します。
バックアップ コピーを $CATALINA_HOME 以外のディレクトリに格納します。
- arcgis.war ファイルを展開(解凍)します。
- セキュリティ制約エレメントとサブエレメントを web.xml ファイルに追加します。
次の例では、Spatial Data Server の /admin/* URL を参照するユーザに、ユーザ名とパスワードの入力が求められるようになります。ユーザは、tomcat-users.xml ファイルで tomcat ロールに追加されている 2 人のユーザのいずれかの認証情報を入力する必要があります。この例では、ArcGIS for Desktop から Spatial Data Server への管理接続または公開接続を行う場合、tomcatu または superu ユーザのユーザ名とパスワードを入力する必要が生じます。
<security-constraint> <display-name>Restricted GET and POST To tomcat users of ADMIN</display-name> <web-resource-collection> <web-resource-name>Restricted Access - Get Only</web-resource-name> <url-pattern>/admin/*</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <role-name>tomcat</role-name> </auth-constraint> <user-data-constraint> <transport-guarantee>NONE</transport-guarantee> </user-data-constraint> </security-constraint> <login-config> <auth-method>DIGEST</auth-method> <realm-name>default</realm-name> </login-config>
上記の例では、ネストされたサブエレメント <auth-method> で DIGEST 認証方式が指定されています。このサブエレメントでは、BASIC または FORM 認証方式も指定できますが、これらの方式ではパスワードがプレーン テキストで送信されます。
- web.xml ファイルを保存して閉じます。
- 再度 arcgis.war ファイルを作成します。
このファイルは、arcgis.war という名前である必要があります。
Tomcat の再起動
すべての xml ファイルを変更した後、次の手順を実行します。
- Tomcat サーバを停止します。
- Tomcat サーバのキャッシュ ファイルを削除します。
キャッシュ ファイルは、$CATALINA_HOME/work または $CATALINA_HOME/temp にあります。これらのディレクトリの下にあるすべてのディレクトリとファイルを削除することができます。
- 変更した arcgis.war ファイルをディレクトリ $CATALINA_HOME/webapps/ にコピーします。
- Tomcat を再起動します。