Skip To Content

Contrôle d'accès basé sur la propriété pour les services d'entités

Remarque :

Vous pouvez uniquement utiliser ces fonctionnalités avec des géodatabases d'entreprise, et non avec des bases de données.

Vous pouvez configurer un service d'entités de sorte qu'il enregistre les coordonnées des créateurs de chaque entité. Vous pouvez également empêcher tout utilisateur d'accéder à des entités qui ne lui appartiennent pas. C'est ce que l'on appelle le contrôle d'accès basé sur la propriété.

Pour utiliser le contrôle d'accès basé sur la propriété, vous devez désigner dans votre jeu de données un champ qui indique le nom du créateur. Modifiez ensuite les paramètres de Suivi de l'éditeur pour que ce champ soit le Champ Créateur. Pour plus d'informations, reportez-vous à la rubrique Suivi de l'éditeur pour les services d'entités pour connaître les étapes de cette procédure.

Lorsque vous publiez le service et activez la fonctionnalité Accès aux fonctions, activez également la propriété Activer le contrôle d'accès en fonction de la propriété sur les entités. Vous pouvez alors choisir Opérations autorisées sur les entités créées par d’autres utilisateurs (requête, mise à jour et suppression) pour préciser les opérations que des utilisateurs peuvent effectuer sur des entités qu'ils n'ont pas créées. Le créateur peut effectuer toutes les opérations autorisées sur le service.

N'oubliez pas que si vous désélectionnez Requête, l'utilisateur connecté ne verra que les entités qu'il a créées. A l'inverse, si l'option Requête est sélectionnée et si les options Mettre à jour et Supprimer sont désélectionnées, l'utilisateur peut effectuer des requêtes, mais il ne pourra accéder qu'en lecture seule aux entités que les autres utilisateurs possèdent.

Le contrôle basé sur la propriété ne fonctionne que si le service peut obtenir les coordonnées des utilisateurs qui créent des entités et tentent d'y accéder. Dans l'application client, le développeur doit exiger que l'utilisateur s'identifie auprès d'ArcGIS Server. Le développeur utilise alors les informations d'identification pour obtenir un jeton auprès d'ArcGIS Server. Le jeton chiffré contenant les coordonnées de l'utilisateur doit être transmis au service d'entités lors de la soumission de requêtes.

Lorsqu'un utilisateur crée une entité à partir d'une requête anonyme (qui ne contient pas d'informations sur l'utilisateur), le champ identifiant le créateur reste vide et tous les utilisateurs peuvent accéder à l'entité.

Remarque :

Les mises à jour effectuées par des utilisateurs anonymes via le service d’entités sont consignées avec la mention Esri_Anonymous dans la géodatabase. Toutefois, ces valeurs apparaîtront comme une chaîne vide aux clients qui ont recours au service d’entités. Lorsque vous interrogez le service d'entités via le répertoire des services REST pour rechercher les entités créées par les utilisateurs anonymes, vous devez spécifier Esri_Anonymous. Par exemple, si la couche d'entités contient un champ créateur nommé created_by, tapez created_by='Esri_Anonymous' dans le champ Lorsque.

Lorsqu'un service d'entités est utilisé dans une carte qui est mise hors connexion pour être mise à jour, le nom de la personne ayant mis la carte hors connexion est utilisé dans le suivi des modifications ; le contrôle d'accès est activé en fonction de cet utilisateur. Attention : le contrôle d'accès basé sur la propriété n'est pas activé pour les administrateurs ArcGIS Server. Les administrateurs disposent de droits d'accès complets.

Si certains jeux de données du service ne présentent pas de champ de créateur, le contrôle d'accès basé sur la propriété n'est pas activé sur ces derniers. Si vous avez sélectionné la case à cocher permettant d'activer le contrôle d'accès basé sur la propriété et que vous n'avez identifié personne dans le champ du créateur, des avertissements risquent de s'afficher lors de l'analyse de la carte avant sa publication. Les couches et les tables pour lesquelles le champ du créateur est vide utilisent les règles liées aux autorisations applicables à chaque service, comme cela est décrit dans la rubrique Autorisations des éditeurs pour les services d'entités.

Editeurs Web

Lorsque vous configurez le contrôle d'accès basé sur la propriété, vous pouvez spécifier un domaine utilisateur. Par exemple, si le domaine utilisateur est myserver.com et que l'utilisateur Bob se connecte et insère une entité via le service, le créateur sera Bob@myserver.com. Si Bob insère une entité dans ArcMap, le créateur sera bob.

Les règles de contrôle d'accès basé sur la propriété s'appliquent aux éditeurs Web non administrateurs qui effectuent des mises à jour via le service.

Conseils et pratiques conseillées

Sachez que les options de contrôle d'accès basé sur la propriété sont limitées aux opérations que peuvent exécuter tous les utilisateurs du service. Par exemple, si, pour un service, les opérations Mettre à jour et Supprimer ne sont pas activées, elles ne le sont pas non plus dans les paramètres du contrôle d'accès basé sur la propriété.

Lorsque vous publiez un service, il est conseillé de faire en sorte que le champ du créateur reste visible pour toutes les couches et tables. Cela permet aux clients de connaître l'identité de la personne qui a créé une entité donnée. Ils peuvent ainsi utiliser ces informations pour empêcher des utilisateurs non autorisés de modifier des entités. Si le champ du créateur est masqué, les clients qui utilisent le service d'entités ne peuvent pas connaître l'identité du créateur d'un service. Si le client tente de modifier une entité à laquelle il n'est pas autorisé à accéder, une erreur est renvoyée.

Il est important de noter la différence entre le suivi de l'éditeur et le contrôle d'accès basé sur la propriété. Si le suivi de l'éditeur est défini pour une couche du jeu de données, le service d'entités suit les mises à jour, que les règles d'accès basé sur la propriétés soient en vigueur ou non. Toutefois, le suivi de l'éditeur au niveau du jeu de données est obligatoire pour pouvoir définir des règles d'accès basé sur la propriété.

Lorsque des modifications sont effectuées par un utilisateur non autorisé, la valeur du champ du créateur ou de l'éditeur n'est pas renseignée. Si le contrôle d'accès basé sur la propriété est activé, tout utilisateur peut modifier des entités. Si ce type de contrôle est activé et que le champ du créateur est NULL, les entités ou enregistrements sont en lecture seule ; en d'autres termes, personne ne peut les modifier. Les auteurs de service peuvent configurer leurs données de telle sorte que le créateur apparaisse en tant que NULL pour les entités qu'ils souhaitent définir en lecture seule.