Skip To Content

フィーチャ サービスでの所有権ベースのアクセス制御

このトピックの内容
注意:

この機能は、エンタープライズ ジオデータベースにのみ使用できます。データベースには使用できません。

それぞれのフィーチャを作成したユーザーの情報を記録するように、フィーチャ サービスを構成できます。また、所有していないフィーチャへのアクセスを制限することもできます。これは、所有権ベースのアクセス制御と呼ばれます。

所有権ベースのアクセス制御を使用するには、データセット内に作成者名を保持するフィールドを指定します。次に、[編集情報の記録] の設定を変更して、これを [作成者フィールド] として指定します。このプロセスの手順については、「フィーチャ サービスの編集情報の記録」をご参照ください。

サービスを公開して、[Feature Access] ケーパビリティをオンにした場合は、[フィーチャで所有権ベースのアクセス制御を有効にする] プロパティもオンにします。次に、[他のユーザーが作成したフィーチャで許可する操作]([検索]、[更新] および [削除]) を選択して、作成者以外のユーザーができる操作を指定します。一般的に、作成者はサービスで許可されているすべての操作を実行できます。

[検索] をオフにした場合、ログイン ユーザーは自分が作成したフィーチャのみを参照するようになる、ということに留意してください。逆に、[検索] をオンにして [更新] と [削除] をオフにすると、ユーザーは、他のユーザーが所有するフィーチャを検索できますが、それらは読み取り専用になります。

所有権ベースのアクセス制御は、フィーチャを作成してアクセスしようとしているユーザーに関する情報をサービスが取得できる場合のみ機能します。開発者は、クライアント アプリケーションでユーザーに ArcGIS Server の認証情報を入力するように求める必要があります。開発者はこの情報を使用して、ArcGIS Server からのトークンを取得します。ユーザー情報が含まれている暗号化されたトークンは、リクエストの作成時にフィーチャ サービスに渡されます。

誰かが匿名リクエスト (ユーザー情報が含まれていないリクエスト) からフィーチャを作成した場合、作成者フィールドは空になり、誰でもそのフィーチャにアクセスできます。

注意:

フィーチャ サービスを介して匿名ユーザーによって行われた編集は、Esri_Anonymous としてジオデータベースに記録されます。ただし、フィーチャ サービスを使用するクライアントには、これらの値は空の文字列として表示されます。ArcGIS Server Services Directory を介してフィーチャ サービスを検索し、匿名ユーザーが作成したフィーチャを見つける場合、「Esri_Anonymous」を指定する必要があります。たとえば、フィーチャ レイヤーに created_by という名前の作成者フィールドが含まれている場合、[条件:] フィールドに「created_by='Esri_Anonymous'」と入力します。

編集のためにオフラインで利用されるマップでフィーチャ サービスが使用されている場合、マップをオフラインで使用したユーザーの名前が編集の追跡に使用され、このユーザーに基づいてアクセス制御が実行されます。所有権ベースのアクセス制御は、ArcGIS Server 管理者には適用されません。管理者はすべての権限を持っています。

サービス内に作成者フィールドが指定されていないデータセットがある場合、所有権ベースのアクセス制御はそれらのデータセットには適用されません。所有権ベースのアクセス制御の有効チェックボックスをオンにして、作成者フィールドを指定していない場合は、公開マップを解析すると警告が表示されます。作成者フィールドのないレイヤーとテーブルは、「フィーチャ サービスでの編集者の権限」で説明されているように、サービス レベルの権限ルールを使用します。

Web 編集者

所有権ベースのアクセス制御を設定するときは、ユーザー レルムを指定できます。たとえば、ユーザー レルムが myserver.com に設定され、ユーザー Bob が接続してサービスを通じてフィーチャを作成した場合、作成者は Bob@myserver.com に設定されます。Bob が ArcMap でフィーチャを作成した場合、作成者は Bob に設定されます。

所有権ベースのアクセス制御ルールは、サービスを通じて編集を実行している管理者でない Web 編集者に対して有効です。

ヒントとベスト プラクティス

また、所有権ベースのアクセス制御オプションは、サービス レベルですべてのユーザーに許可された操作に制限されることにも注意してください。たとえば、サービスレベルの更新および削除操作がオフの場合、所有権ベースのアクセス制御設定における更新および削除操作もオフになります。

サービスを公開するときは、すべてのレイヤーおよびテーブルの作成者フィールドを表示しておくことをお勧めします。こうすることで、特定のフィーチャを作成したユーザーをクライアントが識別できるようになります。クライアントはこの情報を使用して、ユーザーが編集権限を持たないフィーチャを編集できなくすることができます。作成者フィールドが非表示の場合、フィーチャ サービスを利用しているクライアントは、特定のフィーチャを作成したユーザーがわかりません。クライアントが権限のないフィーチャを編集しようとすると、エラーが返されます。

編集情報の記録と所有権ベースのアクセス制御の違いに注意してください。データセット レベルでレイヤーに対して編集情報の記録が設定されている場合は、所有権ベースのアクセス制御ルールが設定されているかどうかに関係なく、フィーチャ サービスによって編集情報が記録されます。一方、所有権ベースのアクセス制御ルールを設定するには、データベース レベルでの編集情報の記録が必要です。

認証されていないユーザーが編集すると、作成者または編集者フィールドの値は空のままになります。所有者ベースのアクセス制御が有効な場合、任意のユーザーがフィーチャを編集できます。所有権ベースのアクセス制御が有効で作成者が NULL の場合、フィーチャまたはレコードは読み取り専用になり、誰もフィーチャを編集できません。サービスの作成者は、読み取り専用にしたいフィーチャが作成者として NULL を持つように、データを構成できます。