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?
fuente
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?
La especificación OGC solo exige el uso de http. Si es compatible con http, debería estar bien.
Algunos métodos posibles:
Esta publicación de OGC de 2005 dice:
No hay aspectos de seguridad específicos que formen parte de las especificaciones de interfaz OGC WMS / WFS / WCS. En cambio, la seguridad y la autenticación se manejan mejor en otra capa en la pila de procesamiento.
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 SIG y elige "acercar a capa", no verá nada y podría pensar que esta capa simplemente está vacía o no trabajo. Una aplicación que conozca la extensión correcta de la capa aún debería poder acceder a ella.
Ya he visto esta solución aplicada en algunos sitios WMS, pero probablemente no se ajusta completamente a los estándares OGC ya que el servidor devuelve una extensión incorrecta.
Puede requerir que los usuarios se conecten al WMS a través de HTTP asegurado por una VPN. Pone la capa de seguridad en el nivel de la red IP, pero ciertamente agrega complejidad.
También hay marcos especializados como SecureOWS de CampToCamp: http://www.secureows.org/trac/secureows
Suponiendo que tiene lo siguiente:
Podría crear una api_keys
tabla con access_token
y expires_at
columnas. Luego agregue un parámetro de cadena de consulta &api_key=my_unique_key
. Su Mapfile para el tileindex ( ver ejemplo ) se configuraría de la siguiente manera:
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 su aplicación separada que autentique a los usuarios en la base de datos actualice la api_keys
tabla, establezca access_token
un hash md5 y mantenga la expires_at
columna actualizada en algún momento en el futuro.
Alternativamente, puede enviar el tráfico proxy a un marco separado que maneja la autenticación WMS / OWS y envía a los usuarios autorizados al Mapserver interno. Aquí hay una lista obtenida de una publicación en la lista de correo de los usuarios del servidor de mapas , que es una lista ampliada / resumida de lo que otros han respondido a esta pregunta.
Si alguna vez decide usar Geoserver, eche un vistazo al módulo AuthKey .
http://52north.org/communities/security/general/user_guide.html http://geoprisma.org/site/index.php
http://www.opengeospatial.org/projects/groups/geormwg
src: http: //www.delicious.com/based2/bundle: comp.infosystems.gis