フィーチャ サービスの権限と編集情報の記録
フィーチャ サービスには、共同編集アプリケーションを構築するときに便利な複数のアクセス制御レベルと編集情報の記録機能があります。
- 編集者の権限は、ユーザがサービス内のフィーチャを追加、削除、変更できるかどうかを制御します。たとえば、フィーチャの追加は可能で、変更または削除はできない権限を編集者に付与することができます。
- 編集情報の記録は、フィーチャを作成または更新したユーザと、その時刻を記録します。これは、編集の説明責任が必要な場合に便利です。オプションの履歴記録機能は、フィーチャの変更に関する情報を保持し、編集をロールバックできるようにします。
- 所有権ベースのアクセス制御を使用すると、フィーチャへのアクセスを作成者に基づいて制限できます。たとえば、自分のデータに対しては作成および編集が可能で、他のユーザが作成したデータにはクエリだけができる権限をユーザに付与することができます。
上記の機能は、ユーザ名を記録および確認するためにトークンを使用します。開発者は、ユーザがアプリケーションを使用する前に、ArcGIS Server のログイン認証情報を入力するように強制できます。開発者は、この認証情報を使用して、ArcGIS Server からトークンを取得できます。トークンにはログインしているユーザの情報が暗号化されて格納されているため、これを利用することで、サービス内のフィーチャに対して可能な操作をユーザのアクセス レベルに応じて制御できます。
サービスとそれに付属するアプリケーションを設計するときは、上記の機能をすべて利用できます。ユーザがコミュニティ内の犯罪を報告できるような Web アプリケーションを考えてください。編集情報の記録は、犯罪を報告したユーザとその時刻を教えてくれます。所有権ベースのアクセス制御を使用すると、ある市民から報告された犯罪が(犯罪者など)別の市民によって削除されないようにできます。最後に、既存の犯罪を編集する機能を無効化し、追加および削除だけを許可できます。
フィーチャ サービスの権限と編集情報の記録のシナリオ
ここでは、アプリケーション内で編集者の権限、編集情報の記録、および所有権ベースのアクセス制御を組み合わせて使用すると便利なシナリオをいくつか紹介します。これらのシナリオを参考にして、アプリケーションの目的に基づいて、フィーチャ サービスのプロパティの最適な組み合わせを設定してください。
一般ユーザのみ
一般ユーザのみの Web アプリケーションの場合、すべての編集者は匿名の一般ユーザです。ユーザが現在いる場所を示す Web アプリケーションなどは、これに適しています。このシナリオでは、サービスはクエリおよび作成オペレーションのみを公開します。フィーチャは変更されないため、データの作成者の記録機能は重要ではありません。編集情報と履歴情報の記録は必要ありません。管理者は、必要に応じて ArcGIS for Desktop 内のデータセットを開いて、不要なフィーチャを削除できます。
許可されたユーザのみ
許可されたユーザのみのアプリケーションの場合、すべてのユーザが任意のデータを編集できますが、編集情報は記録されます。この種のアプリケーションの例としては、居住地の樹木のデジタル目録に対する共同作業が挙げられます。一般ユーザは、データベースから任意の樹木を追加、変更、削除できますが、編集するにはアプリケーションにログインする必要があります。
許可されたユーザのみのアプリケーションでは、ユーザはフィーチャの履歴をクエリして、変更したユーザとその時刻を参照できます。管理者は、必要に応じて編集情報をロールバックできます。各フィーチャの最新の編集者は記録され、データベースに格納されます。
一般ユーザおよび許可されたユーザ
1 つのアプリケーションの中で、一般ユーザと許可されたユーザの両方を使用する必要がある、複数のフィーチャ サービスを使用できます。たとえば、国立公園にいる野生生物の情報を収集している生物学者のチームで作業しているとします。それぞれのユーザは一部の調査範囲を担当しますが、共同で作業することで、公園全体について分析を行い、発見した内容を公開したいと考えています。また、公園を訪れた人から写真やビデオ、意見を収集したいとも考えています。
このデータの収集を管理するために、生物学者だけが編集できる生息環境のフィーチャ サービスと、すべてのユーザが編集できる観測ポイントのフィーチャ サービスを公開します。Web アプリケーションの開発者は、ログインした生物学者は両方のフィーチャ サービスを利用できるように、また、匿名ユーザは観測ポイント フィーチャ サービスと、マップ サービスに描画された生息環境地域の画像を編集不可の状態で利用できるように、ロジックを記述できます。