Chcę publikować warstwy map za pomocą OpenLayers i GeoServer. Chociaż jest to dość łatwe do skonfigurowania, jestem trochę zagubiony, jeśli chodzi o możliwości uwierzytelniania. Chcę stworzyć różnych użytkowników, którzy logując się przy użyciu własnej nazwy użytkownika i hasła, będą kierowani do własnego okna mapy. Jak można to zrobić bezpiecznie, aby żaden z moich użytkowników nie miał dostępu do swoich warstw?
Zrozumiałem, że dość łatwo jest „zhakować” konfigurację, na przykład wykonując zapytania do GeoServera, gdzie po prostu prosi się o listę wszystkich dostępnych warstw.
Jakie są moje opcje? Przypuszczam, że apache może być pomocny podczas konfigurowania go na moim serwerze Ubuntu? Jakieś samouczki na ten temat?
Możesz rzucić okiem na GeoPrisma
http://geoprisma.org/dist/build/html/introduction/index.html
Zrobiłbym skan dokumentacji - dodawanie tego do prostego projektu może być przesadą, jeśli masz w systemie tylko kilka warstw / użytkowników. Jeśli masz setki użytkowników / grup z uprawnieniami do edycji różnych zestawów danych, prawdopodobnie warto zastosować istniejący projekt, taki jak GeoPrisma.
W przeciwnym razie prawdopodobnie wystarczające byłyby standardowe zabezpieczenia serwera WWW zbudowane wokół HTTP.
źródło
Debuguj to oświadczenie
$ type = $ _ GET ['FORMAT'];
kiedy przekazujesz wartość FORMAT jako parametry adresu URL, czy otrzymujesz mapę (obraz) z serwera, jeśli ją otrzymujesz, to serwer proxy powinien działać poprawnie.
źródło
Jedno podejście byłoby wdrożenie Proxy jak to , które mogłyby zweryfikować użytkowników poświadczenia jak zalogować się za pomocą zmiennych sesji i tylko pozwalają im dostępu do zasobów są uprawnieni, czyli: sprawdź URL dla warstw, które są nazywane i odmówić dostępu, jeśli użytkownik nie ma uprawnień do ich przeglądania.
Jeśli chodzi o to, jakie dane mogą zobaczyć, jeśli jest to podzbiór większego zestawu danych, jest to nieco bardziej skomplikowane, ale widzę dwa podejścia ...
Użyj sparametryzowanych widoków SQL, aby kontrolować, jakie dane zobaczy użytkownik. Możesz użyć proxy do zmiany adresu URL przed przekazaniem go do Geoserver z parametrami specyficznymi dla tego użytkownika. Możesz również odesłać parametry z powrotem do Openlayers za pośrednictwem wywołania Ajax po uwierzytelnieniu użytkownika i podać parametry w ramach wywołania WMS getMAP w OpenLayers. Rzeczywiste wyświetlane dane mogą być obsługiwane przez zastępowanie zmiennych w SLD w celu filtrowania wyświetlanych danych lub za pomocą stylów zewnętrznych w wywołaniach getMap WMS w celu zmiany SLD używanej przez użytkownika do wyświetlenia danej warstwy.
Użyj wywołania Ajax po uwierzytelnieniu użytkownika, aby określić zakresy map, aby umożliwić użytkownikowi przemieszczanie się tylko wokół określonego obszaru. Możesz także użyć layerVisibility (), aby ograniczyć również wyświetlanie danych.
źródło
źródło