¿Proteger WMS contra el acceso no autorizado?

19

En un proyecto, el cliente desea que las imágenes del WMS estén protegidas contra el acceso no autorizado.

¿Cuáles son las soluciones comunes para darse cuenta de eso?

¿Son compatibles con los estándares OGC?

    
pregunta Mnementh 01.02.2011 - 14:01

7 respuestas

17

La especificación OGC solo exige el uso de http. Si es compatible con http, debería estar bien.

Algunos métodos posibles:

  • Autenticación básica HTTP (la contraseña enviada como texto sin formato puede tener un soporte de cliente limitado)
  • Autenticación de compendio de HTTP (más seguro, puede tener un soporte de cliente limitado)
  • Filtrar la dirección IP del cliente (fácil de implementar pero no particularmente seguro).
  • URL secreta. Use un GUID para generar una URL que no pueda adivinar. Asume que los clientes mantendrán la URL secreta. Mucho más fácil de usar para el usuario que la entrada de contraseña. Atención al cliente garantizada.
respondido por el Matthew Snape 01.02.2011 - 16:15
11

Este publicación de OGC de 2005 dice:

  

No hay aspectos de seguridad específicos.   que forman parte del OGC WMS / WFS / WCS   Especificaciones de la interfaz. En lugar,   La seguridad y la autenticación son las mejores.   manejado en otra capa en el   pila de procesamiento.

    
respondido por el Kirk Kuykendall 01.02.2011 - 16:07
4

Si la seguridad a través de la oscuridad es suficiente para sus propósitos, puede configurar una extensión falsa para la capa:

Solo usa coordenadas en el otro lado de la Tierra. La capa seguirá apareciendo en la lista de capas, las solicitudes seguirán siendo posibles, pero si un usuario simplemente la selecciona en un software GIS y elige "ampliar a capa", no verá nada y podría pensar que esta capa está simplemente vacía o no. trabajo. Una aplicación que sepa la extensión correcta de la capa debería poder acceder a ella.

Ya he visto esta solución aplicada en algunos sitios WMS, pero es probable que no se ajuste completamente a los estándares OGC ya que el servidor devuelve una extensión incorrecta.

    
respondido por el Name 02.02.2011 - 15:15
3

Puede requerir que los usuarios se conecten al WMS a través de HTTP protegido por una VPN. Pone la capa de seguridad en el nivel de la red IP, pero sin duda agrega complejidad.

    
respondido por el mwalker 01.02.2011 - 18:22
3

También hay marcos especializados como SecureOWS by CampToCamp: enlace

    
respondido por el Laurent Jégou 03.02.2011 - 18:51
1

enlace http://geoprisma.org/site/index.php

enlace

src: http: //www.delicious.com/based2/bundle: comp.infosystems.gis

    
respondido por el user2036 23.02.2011 - 14:49
1

Suponiendo que tienes lo siguiente:

Puedes crear una tabla api_keys con las columnas access_token y expires_at . Luego agregue un parámetro de cadena de consulta &api_key=my_unique_key . Tu archivo de mapas para el índice de mosaico ( ver ejemplo ) se configuraría algo como esto:

DATA "geom FROM (
  SELECT
   my_table.geom,
   my_table.gid,
  api_keys.access_token
  FROM my_table
  CROSS JOIN api_keys
  WHERE ST_Intersects(geom, !BOX!) and api_keys.expires_at > now()
) AS subquery USING UNIQUE gid USING SRID=4326"
FILTER "access_token = '%api_key%'
VALIDATION
  'api_key' '^[a-zA-Z0-9\_\-]{33}$'
  'default_api_key' ''
END

La idea es que tu aplicación independiente que autentica a los usuarios en la base de datos actualizaría la tabla api_keys , establecería access_token en un hash md5 y mantendría la columna expires_at actualizada en algún momento en el futuro.

Alternativamente, puede enviar tráfico a un marco separado que maneja la autenticación WMS / OWS y los usuarios autorizados a los servidores de mapas internos. Aquí hay una lista obtenida de una publicación en la lista de correo de los usuarios de mapserver , que es una lista ampliada / resumida de lo que otros han respondido a esta pregunta.

Si alguna vez decide utilizar Geoserver, eche un vistazo al módulo AuthKey .

    
respondido por el Pete 19.05.2015 - 21:19

Lea otras preguntas en las etiquetas

¿Determinar qué códigos postales de EE. UU. se asignan a más de un estado o más de una ciudad? ___ función qstnhdr ___ setStyle () para funciones de GeoJSON - Folleto ______ qstntxt ___

Bien, ya que hice una pregunta muy larga sobre esto, pero como no obtuve ninguna respuesta nueva por un tiempo, y para no confundirme en los detalles, mantendré esta simple de la mejor manera posible.

Si no me equivoco, una función %code% para una característica particular con nombre sería la siguiente:

%pre%

... que cambiaría el color de naranja a azul. También soy consciente de la función %code% que revertirá el estilo al original.

Así es como estilo mi GeoJSON:

%pre%

Lo que quiero hacer es hacer que solo un país sea azul y los demás grises, más adelante en el código. Es una cosa de dos pasos, pintar todos los países a gris y luego hacer uno azul.

Lo primero es que necesito un bucle que se repita en cada función y %code% para que todos los países aparezcan en gris. ¿Funciona si acabo de %code% o algo así?

La segunda cosa es, (eso me da noches sin dormir) ¿Cómo selecciono solo una característica de un grupo de polígonos de GeoJSON para trabajar? Solo el país que necesito para pintar al azul.

Si se tratara de mover el mouse, podría colocar un detector de eventos como se hace en los tutoriales de folletos. Pero independientemente de la interacción del usuario, quiero establecer y restablecer el estilo llamándolo con su nombre, como hice con el rectángulo de arriba.

    
______ answer75686 ___

He escrito un pequeño código para diseñar una función geojson específica utilizando un folleto. Puede probarlo en JSFiddle (original, no funcional) , Functional JSFiddle 2018-02-17 , o use el siguiente código de prueba localmente.

Para este ejemplo, estoy usando archivos us-states.json pero se puede usar para cualquier archivo geojson.

Espero que te ayude.

Aquí está el código:

%pre%     
______ answer133325 ___

Esto funciona sin la necesidad de eliminar la capa y volver a crear una nueva como se describe anteriormente:

%pre%

Parece ser bastante más eficiente que eliminar y recrear la capa geoJson. De los documentos, una capa %code% extiende %code% que a su vez extiende %code% . < br> Además, parece que cada característica de geoJson tiene su propia capa en el %code% !

    
___