Muchas organizaciones tienen requerimientos para compartir información públicamente, pero en muchos casos el gobierno de los datos no permite la posibilidad de que usuarios anónimos pueden hacer copias locales de los datos. Una capa compartido con todos (públicamente) permite el acceso a través del servicio REST. Existen herramientas que permiten bajar los datos, como por ejemplo esta: Download ArcGIS Online Feature Service or ArcGIS Server Feature/Map Service
Cuando un usuario hace una copia local de los datos, ya no es posible controlarlos.
Al tener la capa compartido con el público, otros usuarios pueden encontrarla en ArcGIS Online y agregar los datos a otros visores y usarlo quizás en una forma que no corresponde con el buen gobierno de datos definido en la organización dueña de la información.
Para usar una capa alojada en ArcGIS Online en una App pública sin permitir el acceso REST a los datos, debemos hacer un proceso adicional. El primer paso es publicar los datos como capa alojada, pero no compartirlo. De esta manera solamente el mismo propietario puede acceder a los datos y el servicio REST no es accesible para usuarios anónimos. Sin embargo ningún usuario tiene acceso a la información porque no la estamos compartiendo.
El proceso de compartir la capa consiste en crear un elemento web a partir de la URL REST y aplicar una configuración especial. A continuación se explican los pasos requeridos.
1) Entre a la página del elemento publicado (la capa alojada) y en la parte inferior derecha se puede copiar la URL del servicio REST de esta capa:
2) En la página de contenido se puede agregar un elemento de la web:
3) Especificar los siguientes datos:
...y más abajo:
Y hacer clic en "Agregar elemento" para crear el elemento en ArcGIS Online.
4) Compartir este elemento con todo el público
En la página del elemento web que acabamos de agregar, podemos definir que se comparte con todos (público): Hacer clic en Compartir:
Luego especificar que se comparte el elemento con Todos (público):
Ahora tenemos la información de la capa disponible a nivel público, pero no es posible acceder a través del REST endpoint.
Ahora podemos armar el mapa web que será la base para la aplicación. Agregue el elemento web a un nuevo mapa:
Configure el mapa (simbología, etiquetas, ventanas emergentes, etc). Una vez listo, se guarda el mapa. Ahora tenemos:
Ahora contamos con la aplicación (pública), la cual consume el mapa web (público), el cual consume el elemento web (público), que consume la capa alojada (privada) suministrando los credenciales almacenadas en el elemento.
En este momento no se puede navegar a la URL REST de la capa, pero todavía es posible agregar el elemento a un nuevo mapa. Queremos que esto no sea posible y que solamente se pueda consumir la información a través de la aplicación que acabamos de crear. Esto es posible al "limitar el uso". Para configurar esta opción debemos entrar a la página del elemento web y entrar a la pestañada "avanzada":
Luego en la parte inferior de la página encontramos la opción "Limitar uso":
Al hacer clic en el botón podemos limitar el uso:
De esta manera solamente la App que configuramos puede consumir el servicio.
Puesto que la capa ahora solamente permite acceso a través de la aplicación, se requieren unos pasos adicionales cuando se requiere hacer modificaciones al mapa web que contiene las capas protegidas: