В проекте клиент хочет, чтобы изображения WMS были защищены от несанкционированного доступа.
Каковы общие решения для реализации этого?
Совместимы ли они с OGC-стандартами?
источник
В проекте клиент хочет, чтобы изображения WMS были защищены от несанкционированного доступа.
Каковы общие решения для реализации этого?
Совместимы ли они с OGC-стандартами?
Спецификация OGC только обязывает использовать http. Если он соответствует http, все должно быть в порядке.
Некоторые возможные методы:
Если для ваших целей достаточно защиты через неизвестность, вы можете настроить ложное расширение для уровня:
Просто используйте координаты на другой стороне Земли. Слой по-прежнему будет отображаться в списке слоев, запросы по-прежнему будут возможны, но если пользователь просто выберет его в программном обеспечении ГИС и выберет «увеличить до слоя», он ничего не увидит и может подумать, что этот слой просто пуст или его нет Работа. Приложение, знающее правильное расширение уровня, должно иметь доступ к нему.
Я уже видел, как это решение применяется на некоторых сайтах WMS, но, вероятно, оно не полностью соответствует стандартам OGC, поскольку сервер возвращает неверное расширение.
Вы можете требовать, чтобы пользователи подключались к WMS через HTTP, защищенный VPN. Это ставит уровень безопасности на уровень IP-сети, но, безусловно, добавляет сложности.
Существуют также специализированные платформы, такие как SecureOWS от CampToCamp: http://www.secureows.org/trac/secureows
Предполагая, что у вас есть следующее:
Вы можете создать api_keys
таблицу с access_token
и expires_at
столбцами. Затем добавьте параметр строки запроса &api_key=my_unique_key
. Ваш Mapfile для tileindex ( см. Пример ) будет настроен примерно так:
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
Идея заключается в том, что ваше отдельное приложение, которое аутентифицирует пользователей в базе данных, обновит api_keys
таблицу, установив access_token
хэш md5 и сохраняя expires_at
столбец обновленным до некоторого момента в будущем.
В качестве альтернативы вы можете проксировать трафик к отдельной платформе, которая обрабатывает аутентификацию WMS / OWS и передает прокси авторизованных пользователей на внутренний Mapserver. Вот список, полученный из сообщения в списке рассылки пользователей mapserver , который представляет собой расширенный / обобщенный список ответов других на этот вопрос.
Если вы когда-нибудь решите использовать Geoserver, взгляните на модуль AuthKey .
http://52north.org/communities/security/general/user_guide.html http://geoprisma.org/site/index.php
http://www.opengeospatial.org/projects/groups/geormwg
ЦСИ: HTTP: //www.delicious.com/based2/bundle: comp.infosystems.gis