In einem Projekt möchte der Kunde, dass die Bilder des WMS vor unbefugtem Zugriff geschützt werden.
Was sind die gängigen Lösungen, um das zu realisieren?
Sind sie mit den OGC-Standards kompatibel?
quelle
In einem Projekt möchte der Kunde, dass die Bilder des WMS vor unbefugtem Zugriff geschützt werden.
Was sind die gängigen Lösungen, um das zu realisieren?
Sind sie mit den OGC-Standards kompatibel?
Die OGC-Spezifikation schreibt nur die Verwendung von http vor. Wenn es http-konform ist, sollte es in Ordnung sein.
Einige mögliche Methoden:
Dieser OGC-Beitrag von 2005 besagt:
Es gibt keine spezifischen Sicherheitsaspekte, die Teil der OGC WMS / WFS / WCS-Schnittstellenspezifikationen sind. Stattdessen werden Sicherheit und Authentifizierung am besten auf einer anderen Ebene im Verarbeitungsstapel behandelt.
Wenn Sicherheit durch Verschleierung für Ihre Zwecke ausreicht, können Sie eine falsche Erweiterung für die Ebene konfigurieren:
Verwenden Sie einfach die Koordinaten auf der anderen Seite der Erde. Die Ebene wird weiterhin in der Ebenenliste angezeigt, Anforderungen sind weiterhin möglich. Wenn ein Benutzer sie jedoch einfach in einer GIS-Software auswählt und "Auf Ebene zoomen" wählt, wird nichts angezeigt, und er könnte denken, dass diese Ebene einfach leer ist oder nicht Arbeit. Eine Anwendung, die die korrekte Ausdehnung der Ebene kennt, sollte weiterhin darauf zugreifen können.
Ich habe diese Lösung bereits auf einigen WMS-Sites angewendet gesehen, aber sie entspricht wahrscheinlich nicht vollständig den OGC-Standards, da der Server eine falsche Ausdehnung zurückgibt.
Sie können verlangen, dass Benutzer über HTTP, das durch ein VPN gesichert ist, eine Verbindung zum WMS herstellen. Dies stellt die Sicherheitsschicht auf die Ebene des IP-Netzwerks, erhöht jedoch die Komplexität.
Es gibt auch spezielle Frameworks wie SecureOWS von CampToCamp: http://www.secureows.org/trac/secureows
Angenommen, Sie haben Folgendes:
Sie können eine api_keys
Tabelle mit access_token
und expires_at
Spalten erstellen . Fügen Sie dann einen Querystring-Parameter hinzu &api_key=my_unique_key
. Ihr Mapfile für den Kachelindex ( siehe Beispiel ) würde ungefähr so konfiguriert sein:
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
Die Idee ist, dass Ihre separate Anwendung, die Benutzer bei der Datenbank authentifiziert, die api_keys
Tabelle aktualisiert , access_token
auf einen MD5-Hash setzt und die expires_at
Spalte zu einem späteren Zeitpunkt aktualisiert.
Alternativ können Sie den Datenverkehr über einen Proxy an ein separates Framework weiterleiten, das die WMS / OWS-Authentifizierung verwaltet und autorisierte Benutzer an den internen Mapserver weiterleitet. Hier ist eine Liste, die aus einem Beitrag an die Mailingliste der Mapserver-Benutzer stammt. Hierbei handelt es sich um eine erweiterte / zusammengefasste Liste dessen, was andere auf diese Frage beantwortet haben.
Wenn Sie sich jemals für Geoserver entscheiden, schauen Sie sich das AuthKey-Modul an .
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