Nota:
Esta funcionalidad solo se puede utilizar con geodatabases corporativas, no con bases de datos.
Puede configurar un servicio de entidades para registrar información sobre quién creó cada entidad. También puede restringir que las personas accedan a las entidades que no son de su propiedad. Esto se conoce como control de acceso basado en la propiedad.
Para utilizar el control de acceso basado en la propiedad, debe designar un campo en el dataset para fijar el nombre del creador. Después puede modificar la configuración de Rastreo del editor para designar este como el Campo creador. Consulte Rastreo del editor para servicios de entidades para ver los pasos de este proceso.
Al publicar el servicio y marcar la opción Acceso a entidades, marque también la propiedad Habilitar control de acceso basado en la propiedad en las entidades. A continuación, puede elegir Operaciones permitidas en entidades creadas por otros usuarios (Consulta, Actualizar y Eliminar) para especificar las cosas que los no creadores puedan hacer. El creador puede llevar a cabo todas las operaciones que se permiten en el servicio en general.
Tenga en cuenta que si desactiva Consulta, el usuario que haya iniciado sesión solo verá las entidades que ha creado. De la misma forma, si está activada Consulta y Actualizar y Eliminar no, el usuario puede consultar, pero tendrá acceso de solo lectura a las entidades propiedad de otros usuarios.
El control de acceso basado en la propiedad solo funciona si el servicio puede obtener información sobre quién crea entidades e intenta acceder a ellos. En la aplicación de clientes, el desarrollador debe solicitar que el usuario introduzca las credenciales de ArcGIS Server. El desarrollador luego utiliza esta información para obtener un token de ArcGIS Server. El token cifrado que contiene la información de usuario debe ser aprobado para el servicio de entidades al hacer peticiones.
Cuando se crea una entidad de una solicitud anónima (lo que significa que la solicitud no contiene información de usuario), el campo creador se deja vacío y cualquiera puede acceder a la entidad.
Nota:
Las modificaciones realizadas por usuarios anónimos mediante el servicio de entidades quedan registradas en la geodatabase como Esri_Anonymous. No obstante, estos valores aparecerán como cadenas de caracteres vacías para los clientes que consuman el servicio de entidades. Al consultar el servicio de entidades mediante el Directorio de servicios REST para buscar entidades creadas por usuarios anónimos, es necesario especificar Esri_Anonymous. Por ejemplo, si la capa de entidades contiene un campo de creador llamado created_by, escriba created_by='Esri_Anonymous' en el campo Where.
Cuando se usa un servicio de entidades en un mapa que se deja sin conexión para editarlo, el nombre de usuario de la persona que dejó el mapa sin conexión se utiliza para realizar un seguimiento de las ediciones y el control de acceso se aplica en función de este usuario. Tenga en cuenta que el control de acceso basado en la propiedad no se aplica para los administradores de ArcGIS Server, que tienen permisos completos.
Si algunos de los datasets en el servicio no tienen un campo creador designados, no se aplica el control de acceso basado en la propiedad a los datasets. Si ha activado la casilla de verificación para habilitar el control de acceso basado en la propiedad y no ha especificado un campo creador, puede ver las advertencias al analizar el mapa para publicar. Las capas y las tablas sin un campo de creador utilizan las reglas de permiso establecidas en el nivel de servicio, como se describe en Permisos de editor para los servicios de entidades.
Editores web
Cuando configura el control de acceso basado en la propiedad, puede optar por especificar un entorno de usuario. Por ejemplo, si el ámbito de usuario se establece en myserver.com y el usuario Bob se conecta e inserta una entidad mediante el servicio, el creador se establece en Bob@myserver.com. Si Bob inserta una entidad en ArcMap, el creador se establece en Bob.
Las normas de control de acceso basado en la propiedad son válidas para los editores web no administrativos que realizan modificaciones en el servicio.
Consejos y buenas prácticas
También es importante señalar que los controles de acceso basados en la propiedad están limitados a las operaciones permitidas para todos los usuarios en el nivel de servicio. Por ejemplo, si se desmarcan las operaciones del nivel de servicio Actualizar y Eliminar, Actualizar y Eliminar tampoco se marcan para las operaciones de los controles de acceso basados en la propiedad.
Cuando publica un servicio, se recomienda mantener el campo creador visible para todas las capas y tablas. Esto permite a los clientes saber qué usuario crea una entidad determinada. Puede utilizar esta información para evitar que los usuarios intenten editar entidades que no tienen permisos para editar. Si el campo creador está oculto, los clientes que utilicen el servicio de entidades no saben qué usuario crea una entidad determinada. Si el cliente intenta editar una entidad en la que no tiene permiso, le devolverá un error.
Es importante tener en cuenta la diferencia entre el rastreo del editor y el control de acceso basado en la propiedad. Si se establece el rastreo del editor para una capa en el nivel de dataset, se realiza un seguimiento de las modificaciones en el servicio de entidades independientemente de las reglas de acceso basadas en la propiedad. Sin embargo, el rastreo del editor en el nivel de dataset es necesario para establecer las reglas de acceso basadas en la propiedad.
Cuando se realizan ediciones por un usuario no autenticado, el creador o valor de campo del editor se deja vacío. Si el control de acceso basado en la propiedad está habilitado, cualquier usuario puede editar entidades. Si el control de acceso basado en la propiedad está habilitado, y el creador es NULL, las entidades o los registros son de solo lectura; nadie puede editar entidades. Los autores de servicio puede configurar sus datos de tal forma que las entidades que desean ser de solo lectura tengan NULO como el creador.