Skip To Content

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

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 pour enregistrer des informations sur les utilisateurs ayant créé chaque entité. Vous pouvez également restreindre l’accès à des entités aux personnes qui en sont propriétaires. On appelle cette opération 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 un champ de votre jeu de données allant recevoir le nom de l’auteur. Modifiez ensuite les paramètres Editor Tracking (Suivi de l’éditeur) pour désigner ce champ comme champ de l’auteur (Creator Field). Reportez-vous à la rubrique Suivi de l’éditeur pour les services d’entités afin de connaître les étapes de ce processus.

Lorsque vous publiez le service et cochez la fonctionnalité Feature Access (Accès aux entités), cochez également la propriété Enable ownership-based access control on features (Activer le contrôle d’accès en fonction de la propriété sur les entités). Vous pouvez alors sélectionner Operations allowed on features created by other users (Opérations autorisées sur les entités créées par d’autres utilisateurs (Query (Requête), Update (Mettre à jour) et Delete (Supprimer)) pour spécifier les tâches réalisables par les utilisateurs autres que les auteurs. L’auteur peut effectuer toutes les opérations généralement autorisées sur le service.

N’oubliez pas que si vous décochez la case Query (Requête), l’utilisateur connecté ne verra que les entités qu’il a créées. À l’inverse, si Query (Requête) est coché et Update (Mettre à jour) et Delete (Supprimer) sont décochés, l’utilisateur peut effectuer des requêtes mais aura un accès en lecture seule aux entités créées par d’autres utilisateurs.

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

Lorsqu’un utilisateur crée une entité à partir d’une requête anonyme (à savoir une requête ne contenant pas d’informations d’utilisateur), le champ de l’auteur demeure vide et quiconque peut accéder à l’entité.

Remarque :

Les mises à jour effectuées par des utilisateurs anonymes via le service d’entités sont consignés sous Esri_Anonymous dans la géodatabase. Toutefois, ces valeurs apparaissent comme une chaîne vide aux clients utilisant le service d’entités. Lorsque vous interrogez le service d’entités via le répertoire de services REST pour rechercher les entités créées par des utilisateurs anonymes, vous devez spécifier Esri_Anonymous. Par exemple, si la couche d’entités contient un champ d’auteur nommé created_by, saisissez created_by='Esri_Anonymous' dans le champ Where (Où).

Lorsqu’un service d’entités est utilisé dans une carte mise hors ligne pour être modifiée, le nom d’utilisateur de la personne ayant mis cette carte hors ligne est utilisé pour surveiller les mises à jour et le contrôle d’accès est appliqué en fonction de cet utilisateur. Sachez que le contrôle d’accès basé sur la propriété n’est pas appliqué pour les administrateurs ArcGIS Server ; les administrateurs disposent de toutes les autorisations.

Si un champ d’auteur n’est pas désigné pour certains des jeux de données du service, le contrôle d’accès basé sur la propriété n’est pas appliqué pour ces jeux de données. Si vous avez coché la case pour activer le contrôle d’accès basé sur la propriété mais n’avez pas spécifié de champ d’auteur, il se peut que des avertissements apparaissent lorsque vous analysez la carte à des fins de publication. Les couches et les tables dépourvues d’un champ d’auteur utilisent les règles d’autorisation définies au niveau du service, comme décrit dans la rubrique Autorisations des éditeurs pour les services d’entités.

Éditeurs web

Lorsque vous configurez le contrôle d’accès basé sur la propriété, vous pouvez choisir de spécifier un domaine d’utilisateur. Par exemple, si le domaine d’utilisateur est défini sur myserver.com et que l’utilisateur Bob connecte et insère une entité via le service, l’auteur est défini sur Bob@myserver.com.

Les règles de contrôle d’accès basé sur la propriété sont valides pour les éditeurs web non administratifs effectuant des mises à jour via le service.

Astuces et bonnes pratiques

Il est également important de savoir que les options de contrôle d’accès basé sur la propriété sont limitées aux opérations autorisées pour tous les utilisateurs au niveau du service. Par exemple, si les opérations de mise à jour et de suppression au niveau du service sont décochées, elles sont également décochées pour les paramètres de contrôle d’accès basé sur la propriété.

Lorsque vous publiez un service, nous vous recommandons de maintenir le champ d’auteur visible pour toutes les couches et les tables. Les clients peuvent ainsi savoir quel utilisateur a créé une entité donnée. Ils peuvent utiliser cette information pour empêcher les utilisateurs d’essayer de mettre à jour des entités qu’ils ne sont pas autorisés à mettre à jour. Si le champ d’auteur est masqué, les clients utilisant le service d’entités ne sauront pas quel utilisateur a créé une entité donnée. Si le client tente de mettre à jour une entité pour laquelle il ne dispose pas d’autorisations, une erreur est renvoyée.

Il est important de noter la différence qu’il existe 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 au niveau du jeu de données, les mises à jour sont suivies par le service d’entités, que les règles d’accès basé sur la propriété soient en place ou pas. Cependant, le suivi de l’éditeur au niveau du jeu de données est nécessaire pour définir les règles d’accès basé sur la propriété.

Lorsque des mises à jour sont effectuées par un utilisateur non authentifié, le champ de l’auteur ou de l’éditeur demeure vide. Si le contrôle d’accès basé sur la propriété est activé, n’importe quel utilisateur peut mettre à jour des entités. Si le contrôle d’accès basé sur la propriété est activé et que l’auteur est défini sur la valeur NULL, les entités ou les enregistrements sont en lecture seule ; aucun utilisateur ne peut mettre à jour des entités. Les auteurs de service peuvent configurer leurs données de sorte que, pour les entités devant être en lecture seule, le créateur soit défini sur NULL.