ArcGIS Server セキュリティと Oracle データベースの統合
ユーザが Oracle データベースのデータを利用する GIS リソースにリクエストを行ったときに、データベースがユーザのアイデンティティに基づいてアクセス制御を適用できるように、ArcGIS Server はユーザのアイデンティティをデータベースに渡すことができます。現在、この機能は他のデータベース システムでは利用できません。
データベース レベルのセキュリティを使用する場合は、ArcGIS Server Web サービスに対する権限に加えて、または ArcGIS Server Web サービスに対する権限の代わりに、データベースのテーブル(または列と行、もしくは両方)に対する権限をユーザに割り当てることができます。Oracle データベースの統合セキュリティを構成するには、以下の手順に従います。
- マップ作成者用のデータベース アカウントの作成
- ArcGIS Web サービス ユーザ用のデータベース アカウントの作成
- ドキュメントを作成し ArcGIS Server での公開
- データベース統合セキュリティの有効化
- 統合セキュリティのテスト
マップ作成者用のデータベース アカウントの作成
統合セキュリティをサポートするには、マップ ドキュメントの作成者に必要なデータベース権限が与えられている必要があります。このために、マップ ドキュメントの作成に使用するデータベース アカウントを定義する必要があります。データベース管理者は、マップを作成するユーザを作成して権限を割り当てます。
CREATE USER <map author> IDENTIFIED BY <map author password>
DEFAULT TABLESPACE <tablespace_name>
TEMPORARY TABLESPACE <temp_tablespace_name>;
GRANT CONNECT, RESOURCE TO <map author>;
ユーザの作成に関する詳細な情報と要件については、Oracle のマニュアルをご参照ください。
ArcGIS Web サービス ユーザ用のデータベース アカウントの作成
統合セキュリティを機能させるには、ArcGIS Web サービス ユーザに対応するデータベース アカウントが必要です。データベース管理者は、ArcGIS Web サービスにアクセスする各ユーザのデータベース アカウントを作成します。マップ作成者のデータベース アカウントを通して各ユーザに接続権限を付与する必要もあります。
CREATE USER <ArcGIS Web user> IDENTIFIED by <ArcGIS Web user>
DEFAULT TABLESPACE <tablespace_name>
TEMPORARY TABLESPACE <temp_tablespace_name>;
GRANT CONNECT,RESOURCE to <ArcGIS Web user>;
ALTER USER <ArcGIS Web user> GRANT CONNECT THROUGH <map author>;
CREATE USER "<domain name>\<user name>" IDENTIFIED by <user name>
作成した各データベース アカウントに、ユーザが Oracle ジオデータベース内で認証されている操作に対応する権限を付与します。以下の例では、2 つのロールを定義して ArcGIS Web サービス ユーザに権限を付与しています。1 つめのロールは 2 つのジオデータベース レイヤでデータベース選択(データを表示する権限)を許可するように定義し、2 つめのロールはレイヤでの編集を許可するように定義しています。
--Role for displaying boundary layers
CREATE ROLE sel_boundary_role NOT IDENTIFIED;
GRANT SELECT ON <map author>.States TO sel_boundary_role;
GRANT SELECT ON <map author>.Counties TO sel_boundary_role;
GRANT sel_boundary_role to <user one>;
-- Role for displaying transportation layer
CREATE ROLE sel_trans_role NOT IDENTIFIED;
GRANT SELECT,UPDATE,INSERT,DELETE ON <map author>.Roads TO sel_trans_role;
GRANT sel_trans_role to <user two>;
Oracle データベースで、個別の行(フィーチャ)および列(属性フィールド)に権限を構成することもできます。詳細については、Oracle データベースのマニュアルをご参照ください。
ドキュメントの作成と ArcGIS Server での公開
ArcMap を使用して、ドキュメントを作成できます。ジオデータベース リソースを追加するときに、「マップ作成者の定義」で説明するように、マップ作成者データベース アカウントの認証情報を使用する必要があります。マップ ドキュメントを ArcGIS Server で公開します。WMS や KML などのマップ サービスの機能には、標準の ArcGIS Web サービス(SOAP/REST)と同じセキュリティ制限が適用されます。
Oracle の統合セキュリティの有効化
データベース アカウントを定義した後、ArcGIS Server のアイデンティティ ストアに、Oracle のユーザとロールと正確に一致するユーザおよびロールを作成する必要があります。新しいユーザを追加する方法については、「Manager での新しいユーザの追加」をご参照ください。新しいロールを追加する方法については、「Manager での新しいロールの追加」をご参照ください。
ArcGIS Server のアイデンティティ ストアにユーザとロールを作成した後、ユーザのアイデンティティを Oracle データベースに渡すように、ArcGIS Server を構成する必要があります。データベース統合セキュリティを有効にするには、以下の手順に従います。
- Administrator Directory(http://myserver:6080/arcgis/admin)を開き、プライマリ サイト管理者または管理アクセス権限を持つユーザとしてログインします。
- [system] → [properties] → [update] の順にクリックします。
- [Properties] テキスト ボックスに、以下の JSON を入力します。
{"pushIdentityToDatabase" : "true" }
- [Update] をクリックして、変更内容を保存します。
統合セキュリティのテスト
統合セキュリティのサポートを利用して作成した ArcGIS Web サービスを使用する、Web マッピング アプリケーションを作成します。Web ブラウザで Web アプリケーションを開きます。Web アプリケーションには、ユーザに権限が付与されているレイヤ/フィーチャだけが表示されます。別のユーザの認証情報を使用する新しい Web マッピング アプリケーションを作成して、このテストを繰り返します。