Mehr

OpenLayers - Zugriff auf GeoServer-Layer mit PHP-Authentifizierung


Ich deaktiviere alle anonymen Anfragen (WMS/WFS/…) an meinen GeoServer, aber jetzt kann ich von meiner OpenLayers-App aus auf keinen Layer zugreifen.

Ich möchte wissen, ob eine Authentifizierung auf meinem GeoServer über PHP oder JavaScript möglich ist, bevor eine OpenLayers-Anfrage ausgeführt wird.

Wenn ja, was ist die beste Option? Über PHP cURL, JavaScript oder Proxy (http://docs.geoserver.org/stable/en/user/security/tutorials/httpheaderproxy/index.html)


Wir verwenden keine GeoServer-Authentifizierung, aber wir verwenden eine ASP-Version dieses Proxy-Skripts, das wir selbst mit einigen Optimierungen geschrieben haben.

Unser Skript übernimmt die Authentifizierung über einen Hashtag, den wir in die WMS Client Calls eingebunden haben.

Das HashTag wird bei der Benutzeranmeldung auf Anwendungsebene in eine Datenbank gesetzt und bei LogOut oder Timeout entfernt. Es wird auch zur Client-LogIn-Zeit über Ajax an den Client gesendet.

Der Hashtag wird nur einmal verwendet und wird x Tage lang nicht wiederholt. (wir verwenden ein Jahr)

Wir verwenden ein URL-Format wie folgt (asp)

http://maps4.markware.net/?" & HashTag & ":-:" & LAYERS=

und analysieren Sie den Hash zwischen den?und der:-:Überprüfen Sie im Proxy-Skript, ob das Tag gültig ist, und erstellen Sie dann die Zeichenfolge in eine neue gültige URL, die auf die Geoserver-Instanz verweist.

Natürlich müssen Sie die Rücksendungen vom Geoserver verarbeiten und zurück an den Client weiterleiten, das von Ihnen erwähnte Skript übernimmt das.

Wenn sich Ihre Geoserver-Instanz hinter dem Proxy befindet und nur über ein lokales LAN zugänglich ist, ist dies alles, was Sie brauchen. Es ist sicher. Wenn nicht, müssen Sie auf dem Geoserver-Rechner eine Firewallregel einrichten, die nur Port 8080 von Ihrer Proxy-IP-Adresse zulässt.

Auf diese Weise müssen wir keine Hosts im Auge behalten und kümmern uns um die Authentifizierung auf Anwendungsebene. Ungültiges oder kein Hash-Tag, keine Kacheln.

Später haben wir unser Skript verbessert, um den Lastenausgleich über mehrere GeoServer-Instanzen zu ermöglichen und einige Anfragen an GeoWebCache und einige an GeoServer weiterzuleiten, abhängig von den Anwendungsanforderungen. Es gibt Ihnen eine große Kontrolle über Ihr Setup!


Schau das Video: WebGIS Development from scratch using Geoserver, Openlayers 6 and Postgis (Oktober 2021).