¿Cómo colocar capas de GeoServer detrás de la autenticación?

29

Quiero publicar capas de mapa usando OpenLayers y GeoServer. Si bien esto es fácil de configurar, estoy un poco perdido cuando se trata de las posibilidades de autenticación. Lo que quiero es crear diferentes usuarios que, al iniciar sesión con su propio nombre de usuario y contraseña, se dirijan a su propia ventana de mapa. ¿Cómo se puede hacer esto de manera segura para que ninguno de mis usuarios pueda acceder a las capas de los demás?

He entendido que es bastante fácil "piratear" la configuración, por ejemplo, haciendo consultas al GeoServer donde uno simplemente le pide que enumere todas las capas disponibles.

¿Cuáles son mis opciones? ¿Supongo que apache podría ser de ayuda al configurarlo en mi servidor de Ubuntu? ¿Algún tutorial sobre este tema?

    
pregunta Mimo 17.11.2011 - 12:37

5 respuestas

20

En primer lugar, creo que debería leer la documentación de Geoserver sobre seguridad. enlace descubrirá que es posible hacer que las capas sean accesibles / inaccesibles para diferentes usuarios o roles .

Otra solución posible sería hacer que el geoserver sea inaccesible desde el mundo exterior (cierre el puerto 8080 en su servidor para el IP que no sea localhost) y luego cree un mecanismo de autenticación en el lenguaje de programación web que elija.

Por ejemplo: puede configurar algún tipo de inicio de sesión / autenticación en php que reenvíe las solicitudes al geoserver en localhost una vez autenticado.

    
respondido por el milovanderlinden 20.11.2011 - 10:42
9

Podría echar un vistazo a GeoPrisma

  

Necesitábamos hacer una aplicación de mapeo web con seguridad en sensible   conjuntos de datos Esto podría haberse logrado con múltiples aplicaciones.   y colocando un inicio de sesión estándar + acceso de contraseña a ellos, pero el   El proyecto era demasiado grande y habría sido muy complejo de mantener.   Agregar un nuevo conjunto de datos, por ejemplo, requeriría modificaciones de cada uno   Aplicación manual, ajustes de la seguridad, etc.

     

Es por eso que decidimos desarrollar nuestra propia aplicación de mapeo web que   control de acceso incluido en los conjuntos de datos utilizando el mapeo web de OpenSource   aplicaciones disponibles.

enlace

Tendré un escaneo de la documentación; puede ser excesivo agregar esto a un proyecto simple si solo tiene unas pocas capas / usuarios en su sistema. Si tiene cientos de usuarios / grupos con derechos de edición en diferentes conjuntos de datos, entonces probablemente tenga sentido usar un proyecto existente como GeoPrisma.

De lo contrario, la seguridad estándar del servidor web basada en HTTP probablemente sería suficiente.

    
respondido por el geographika 17.11.2011 - 13:58
0

Por favor, depura esta declaración

$ type = $ _ GET ['FORMAT'];

cuando pasa el valor de FORMATO como parámetros de la URL, obtiene el mapa (imagen) del servidor. Si lo está obteniendo, entonces su proxy debería estar funcionando bien.

    
respondido por el ate 12.08.2012 - 13:56
0

Un enfoque sería implementar un Proxy como esto que podría verificar las credenciales de un usuario al iniciar sesión con una sesión variables y solo les permite acceder a los recursos a los que tienen derecho, es decir: compruebe la url para las capas que se están llamando y deniegue el acceso si el usuario no está autorizado para verlas.

En términos de qué datos pueden ver, si es un subconjunto de un conjunto de datos más grande, esto es un poco más complicado, pero veo dos enfoques ...

  1. Use Vistas SQL parametrizadas para controlar los datos del usuario vería. Puede usar el Proxy para cambiar la url antes de pasarlo a Geoserver con los parámetros específicos de ese usuario. También puede enviar los parámetros a Openlayers a través de una llamada Ajax una vez que el usuario se haya autenticado y proporcionar los parámetros como parte de la llamada getMAP de WMS en OpenLayers. Los datos reales mostrados podrían ser manejados por Sustitución variable en SLD para filtrar los datos mostrados o utilizando Estilos externos en su WMS, getMap llama para cambiar el SLD que un usuario usa para mostrar una capa determinada.

  2. Use una llamada Ajax después de la autenticación del usuario para especificar Extensiones de mapas para permitir solo al usuario para moverse alrededor de un área específica. También puede usar layerVisibility () para restringir los datos que también se pueden mostrar.

respondido por el Mark Cupitt 02.10.2014 - 03:48
0
  1. Primero cree una URL de proxy (en su lenguaje de programación).
  2. Esta URL de proxy llegará al servidor geográfico.
  3. En esta URL de proxy, puede realizar la autenticación con Usuarios & La página se refiere. Puede verificar que la URL esté siendo referida desde su aplicación web o No. Si no es así, simplemente envíe un encabezado no autorizado.
  4. Accederás a esta URL de proxy en lugar de a la URL de tu servidor geográfico.
  5. Nadie podrá saber cuál es la url exacta de Geoserver & no podrá hackearlo.
  6. Para seguridad con los usuarios, simplemente agregue una comprobación de los Usuarios en la URL del proxy.
  7. Desde Open Layers pase el wms-url como: enlace
respondido por el Vineet Arora 14.01.2015 - 06:56

Lea otras preguntas en las etiquetas