Le blog francophone consacré
aux technologies Esri

Conseils & Astuces ArcGIS Online - N°103

N° 103 - Autoriser l'accès public à une couche d'entités pour une application spécifique

Lorsque vous déployez une application de manière publique, il arrive que vous souhaitiez rendre certaines couches de la carte accessible uniquement à travers cette application. Si vous laissez ces couches privées, elles ne seront pas accessibles dans l'application publiques. Si vous rendez publique ces couches, elles seront accessibles y compris en dehors de l'application. Alors comment faire ?

Dans cet article, je vous propose de voir comment faire en sorte qu'une couche soit accessible publiquement pour une application spécifique tout en restant privée sur votre portail ArcGIS.
    
 
  1. Prenons par exemple le cas de cette couche d'entités contenant des informations sur les zones d'observation de loups. Je souhaite l'utiliser dans une application publique mais je ne souhaite pas qu'elle soit utilisable (affichage, requête, téléchargement, ...) par des utilisateurs en dehors de cette application. Cette couche est privée et je souhaite qu'elle le reste.


       
  2. La première étape consiste à récupérer l'URL du service web de cette couche d'entités. Pour cela, dans la page de description de l'élément, vous descendrez jusqu'à la partie URL puis vous cliquerez sur le bouton "Copier".


      
  3. Placez-vous maintenant dans l'onglet "Contenu" puis exécuter la commande "Ajouter un élément > A partir du web" pour créer une nouvelle couche d'entités basée sur ce service.

    a) Choisir la source "Service Web ArcGIS Server".
    b) Coller l'URL du service d'entités que vous venez de copier.
    c) Saisir le login et mot de passe du propriétaire du service d'entités.
    d) Indiquer que ces information d'authentification doivent être stockées avec l'élément.
    e) Spécifier le titre de cette nouvelle couche d'entités.
    f) Spécifier une ou plusieurs balises.



    Cliquer sur le bouton "Ajouter un élément" pour créer cette nouvelle couche d'entités.
         
  4. La nouvelle couche d'entités est créée. On notera que les données source n'ont pas été dupliquée, cette couche pointe vers le même service d'entité que la couche d'origine. Pour pouvoir utiliser cette nouvelle couche dans votre application publique, vous devez maintenant la partager de manière publique. Pour cela, cliquer sur le bouton "Partager" puis sélectionner l'option "Tout le monde".


     
    Cliquer sur le bouton "OK" pour valider les options de partage.
  5. Vous allez maintenant pouvoir créer votre carte web puis votre application (partagées en "public"). Quelle que soit la manière dont vous créez l'application (Modèle d'applications ArcGIS, Web AppBuilder, Story Map, développement JavaScript, ...), vous noterez simplement l'URL de cette application une fois déployée. Si il s'agit d'une carte web encapsulée dans une page web, vous noterez alors l'URL de cette page.


         
  6. Maintenant que votre application est finalisée, vous allez maintenant indiquer que l'accès à la couche est restreint à cette application. Pour cela, afficher la description de la couche d'entités et placez-vous dans l'onglet "Paramètres".

    Descendre dans la page puis cliquer sur le bouton "Limiter l'utilisation".
     
          
  7. Dans la fenêtre "Limiter l'utilisation" suivre la démarche suivante pour toute les applications devant pouvoir accéder à votre couche:

    a) Saisir l'URL de l'application (ici une application Web AppBuilder).
    b) Cliquer sur le bouton "Ajouter".
     

     
    Cliquer ensuite sur le bouton "OK" pour valider les limitations d'utilisation.
       
  8. Cliquer sur "Enregistrer" pour valider ces limitations d'accès sur votre couche.

    Votre couche est désormais protégée et restreinte à cette application uniquement. Si un utilisateur recherche cette couche sur ArcGIS Online, il l'a trouvera (verra sa fiche descriptive) mais ne pourra pas y accéder sans le login et mot de passe du propriétaire de la couche.
  

Bonne route sur ArcGIS Online !
   
Pour retrouver l'ensemble des Conseils & Astuces ArcGIS Online, cliquez sur ce lien

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article:

14 comments :

Anonyme a dit…

Top!

Louis D

Anonyme a dit…

Bonjour,

Merci pour l'astuce :)
Est-ce que ça fonctionne aussi pour une application leaflet ? Dans ce cas, l'url du service, c'est celle qui est générée après ajout du SW sécurisé ?
https://utility.arcgis.com/usrsvcs/servers/xxxxxxx/rest/services/..../MapServer

J'ai testé et mon service ne s'affiche pas alors que je n'ai même pas encore restreint l'accès.

Merci.

Anonyme a dit…

Autant pour moi, ça fonctionne, je n'avais juste pas la bonne librairie leaflet !
Merci :)

Gaëtan Lavenu a dit…

Bonjour,

Normalement, cela devrait fonctionner aussi avec l'URL d'origine de votre application Leaflet.

Anonyme a dit…

Bonjour,

Cette solution empêche t-elle également l'ouverture du service sur ArcMap ainsi que l'export en shp du service depuis ArcMap ?

Merci.

Gaëtan Lavenu a dit…

Bonjour,

Quels que soit les paramètres de partage de la couche d'entités (Feature Layer) que vous aurez configuré, ArcMap ne verra pas. En effet, à la différence d'ArcGIS Pro, ArcMap ne voient pas les éléments de type "couche d'entités" mais uniquement les services d'entités (Feature services) qui sont sous-jacents aux couches d'entités. Dans mon exemple, le service d'entités restant privé, il ne sera pas accessible (ArcMap, ArcGIS Pro ou tout autre type d'application) sauf si vous vous connectez avec le compte propriétaire du service d'entités.

Unknown a dit…

Bonjour

Avez-vous testé avec un élément WMS ?
Dans AGOL/Portal pas de pb, mais avec leaflet par exemple j'ai le message :
ArcGIS Portal Directory / Services Directory has been disabled / Error 403
Un peu comme dans Portal lorsqu'on n'autorise pas le "listage" des services.
Merci

Unknown a dit…

Oups, je voulais dire : Un peu comme dans ArcGis Server lorsqu'on n'autorise pas le "listage" des services.

Unknown a dit…

En fait, si on autorise le listage des services dans AGS, cela fonctionne également avec un WMS.
Le message mentionnant "Portal" était trompeur ...

Anonyme a dit…

Bonjour,
J'ai testé avec un service WMS et ça ne réagit pas pareil, quand j'ajoute l'url WMS, ça ne me propose pas l'enregistrement de mon login / mot de passe et je n'ai pas la limitation dans les paramètres.
Est-ce un comportement "normal" ?
Merci.

E_laugh a dit…

Nous hébergeons nos services sur notre ArcServer et lorsque nous effectuons ta procédure à la fin de l'étape 3, nous avons le message error generate tokken.

Nous n'avons pas de token d'installer, est-ce que tu as une idée qu'est-ce qu'on pourrait faire pour que ta procédure fonctionne ?
Est-ce que ta procédure est seulement pour les services hébergés Online ou également ArcServer ?

Anonyme a dit…

Bonjour,
Merci pour votre merveilleux conseil.
Ai rajouté une couche dans le Feature Service Hébergé de base.
La couche d'entité basée sur ce Feature service Hebergé ne contient pas la couche ajoutée.
Peut-on mettre à jour la couche d'entités basée sur ce service.
Merci pour votre précieuse aide

Vincent T. a dit…

Bonjour,

n'est ce pas plus simple de créer une vue de la couche dédiée à l'application souhaitée et restreinte comme on le souhaite?
Je ne sais pas bien la nuance...

Gaëtan Lavenu a dit…

Bonjour,

Qu'il s'agisse d'une couche d'entités ou d'une vue sur une couche d'entités, la problématique est la même. Il s'agit de référencer la couche (ou la vue) pour pouvoir stocker les informations d'identification, la rendre publique mais en limitant l'accès à une ou plusieurs applications spécifiques pour qu'elle ne soit pas totalement ouverte à n'importe quelle application. Le processus décrit dans cet article est donc valable pour une couche d'entités ou pour une vue. On notera simplement que depuis 2018, l'interface d'ArcGIS Online a évolué, mais les étape sont toujours valables.