ユーザーが 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>;
注意:
ArcGIS Server はユーザー名を小文字でデータベースに渡すため、データベースにユーザー名を作成するときには小文字を使用してください。Microsoft Active Directory をアイデンティティ ストアとして使用している場合は、ユーザー名を二重引用符で囲みます。たとえば、次のようになります。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://gisserver.domain.com:6080/arcgis/admin) を開き、プライマリ サイト管理者または管理アクセス権限のあるユーザーとしてログインします。
- [system] > [properties] > [update] の順にクリックします。
- [Properties] テキスト ボックスに、以下の JSON を入力します。
{"pushIdentityToDatabase" : "true" }
- [Update] をクリックして、変更内容を保存します。
統合セキュリティのテスト
統合セキュリティのサポートを利用して作成した ArcGIS Web サービスを使用する、Web マッピング アプリケーションを作成します。Web ブラウザーで Web アプリケーションを開きます。Web アプリケーションには、ユーザーに権限が付与されているレイヤー/フィーチャだけが表示されます。別のユーザーの認証情報を使用する新しい Web マッピング アプリケーションを作成して、このテストを繰り返します。