W projekcie klient chce, aby obrazy WMS były zabezpieczone przed nieautoryzowanym dostępem.
Jakie są typowe rozwiązania, aby to zrealizować?
Czy są zgodne ze standardami OGC?
źródło
W projekcie klient chce, aby obrazy WMS były zabezpieczone przed nieautoryzowanym dostępem.
Jakie są typowe rozwiązania, aby to zrealizować?
Czy są zgodne ze standardami OGC?
Specyfikacja OGC wymaga tylko użycia http. Jeśli jest zgodny z http, powinno być w porządku.
Niektóre możliwe metody:
Jeśli zabezpieczenia wynikające z niejasności są wystarczające, możesz skonfigurować fałszywe rozszerzenie dla warstwy:
Po prostu użyj współrzędnych po drugiej stronie Ziemi. Warstwa nadal będzie wyświetlana na liście warstw, żądania będą nadal możliwe, ale jeśli użytkownik po prostu wybierze ją w oprogramowaniu GIS i wybierze „powiększ do warstwy”, nic nie zobaczy i może pomyśleć, że ta warstwa jest po prostu pusta lub nie praca. Aplikacja znająca prawidłowe rozszerzenie warstwy powinna nadal mieć do niej dostęp.
Widziałem już to rozwiązanie stosowane na niektórych stronach WMS, ale prawdopodobnie nie jest całkowicie zgodne ze standardami OGC, ponieważ serwer zwraca nieprawidłowe rozszerzenie.
Możesz wymagać, aby użytkownicy łączyli się z WMS przez HTTP zabezpieczony przez VPN. Umieszcza warstwę bezpieczeństwa na poziomie sieci IP, ale z pewnością zwiększa złożoność.
Istnieją również wyspecjalizowane frameworki, takie jak SecureOWS by CampToCamp: http://www.secureows.org/trac/secureows
Zakładając, że masz następujące elementy:
Można utworzyć api_keys
tabelę access_token
i expires_at
kolumny. Następnie dodaj parametr querystring &api_key=my_unique_key
. Twój Mapfile dla tileindex ( patrz przykład ) byłby skonfigurowany mniej więcej tak:
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
Pomysł polega na tym, że twoja osobna aplikacja, która uwierzytelnia użytkowników w bazie danych, zaktualizuje api_keys
tabelę, ustawiając access_token
wartość skrótu md5 i utrzymując expires_at
kolumnę aktualizowaną do pewnego momentu w przyszłości.
Alternatywnie, możesz proxy ruchu do oddzielnej struktury, która obsługuje uwierzytelnianie WMS / OWS i proxy autoryzowanych użytkowników do wewnętrznego Mapserver. Oto lista uzyskana z postu na liście mailingowej mapserver-users , która jest rozwiniętą / podsumowaną listą odpowiedzi innych osób na to pytanie.
Jeśli kiedykolwiek zdecydujesz się użyć Geoservera, spójrz na moduł 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