Я хочу публиковать слои карты, используя OpenLayers и GeoServer. Хотя это достаточно легко настроить, я немного растерялся, когда дело доходит до возможностей аутентификации. Я хочу создать разных пользователей, которые, войдя под своим собственным именем пользователя и паролем, будут перенаправлены в собственное окно карты. Как это можно сделать безопасно, чтобы никто из моих пользователей не смог получить доступ к слоям друг друга?
Я понял, что довольно легко «взломать» настройку, например, сделав запросы к GeoServer, где кто-то просто просит его перечислить все доступные слои.
Какие у меня варианты? Я полагаю, Apache может помочь при настройке на моем сервере Ubuntu? Какие-нибудь учебники на эту тему?
Вы могли бы взглянуть на GeoPrisma
http://geoprisma.org/dist/build/html/introduction/index.html
Я бы просканировал документацию - было бы излишне добавлять это в простой проект, если в вашей системе всего несколько слоев / пользователей. Если у вас есть сотни пользователей / групп с правами на редактирование разных наборов данных, то, вероятно, имеет смысл использовать существующий проект, такой как GeoPrisma.
В противном случае стандартная безопасность веб-сервера, построенная на HTTP, вероятно, будет достаточной
источник
Пожалуйста, отладьте это утверждение
$ Тип = $ _ GET [ 'FORMAT'];
Когда вы передаете значение FORMAT в качестве параметров URL-адреса, получаете ли вы карту (изображение) с сервера. Если вы получаете его, то ваш прокси-сервер должен работать нормально.
источник
Один из подходов к реализации прокси - сервера , как это , что может проверить пользователей учетные данные как войти в систему с помощью переменных сеанса и только позволяют им доступ к ресурсам они имеют право, а именно: проверить URL для слоев , которые в настоящее время называются и если запретить доступ Пользователь не авторизован для их просмотра.
С точки зрения того, какие данные они могут видеть, если это подмножество большего набора данных, это немного сложнее, но я вижу два подхода ...
Используйте параметризованные представления SQL, чтобы контролировать, какие данные увидит пользователь. Вы можете использовать Прокси-сервер для изменения URL-адреса перед его передачей в Geoserver с параметрами, специфичными для этого пользователя. Вы также можете отправить параметры обратно в Openlayers через Ajax Call после аутентификации пользователя и предоставить параметры как часть вызова WMS getMAP в OpenLayers. Отображаемые фактические данные могут обрабатываться путем подстановки переменных в SLD для фильтрации отображаемых данных или с помощью внешних стилей в вызовах getMap в WMS для изменения SLD, которое пользователь использует для отображения данного слоя.
Используйте Ajax Call после аутентификации пользователя, чтобы указать экстенты карты, чтобы позволить пользователю перемещаться только вокруг указанной области. Вы также можете использовать layerVisibility (), чтобы ограничить отображаемые данные.
источник
источник