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

注意注意:

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

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

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

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

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

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

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

注意注意:

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

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

Web 編集者

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

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

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

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

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

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

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

5/20/2014