WMS vor unbefugtem Zugriff schützen?

21

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?

Mnementh
quelle

Antworten:

17

Die OGC-Spezifikation schreibt nur die Verwendung von http vor. Wenn es http-konform ist, sollte es in Ordnung sein.

Einige mögliche Methoden:

  • HTTP-Basisauthentifizierung (Kennwort wird als einfacher Text gesendet, möglicherweise mit eingeschränkter Clientunterstützung)
  • HTTP-Digest-Authentifizierung (sicherer, möglicherweise eingeschränkter Client-Support)
  • IP-Adresse des Clients filtern (einfach zu implementieren, aber nicht besonders sicher).
  • Geheime URL. Verwenden Sie eine GUID , um eine nicht erratbare URL zu generieren. Es wird davon ausgegangen, dass Clients die URL geheim halten. Viel einfacher für den Benutzer als Passworteingabe. Garantierte Kundenbetreuung.
Matthew Snape
quelle
11

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.

Kirk Kuykendall
quelle
4

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.

Name
quelle
3

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.

Wanderer
quelle
2

Angenommen, Sie haben Folgendes:

Sie können eine api_keysTabelle mit access_tokenund expires_atSpalten 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_keysTabelle aktualisiert , access_tokenauf einen MD5-Hash setzt und die expires_atSpalte 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 .

Pete
quelle