Tielserver Zugriffsberechtigung setzen

Hallo ich habe einen Tileserver aufgesetz. Unsere Anwendung greift nun via openLayer von einem anderen Webserver aus die Kacheln vom Tileserver ab.

Theoretisch kann ja jetzt jeder Tiles von unserem Server holen der die URL rausbekommt kann ich den Zugriff schützen ? Das man noch in der URL user oder Psswd mitgeben muss ?

Das würde man IMHO am besten über den Apache Server selbst beschränken. Das wird in den Konfigurationsdateien unterhalb von …/available-sites/ gemacht, wenn ich mich richtig entsinne. Google einfach mal, hier ist auch ein Einstieg: http://www.zdnet.de/41556021/hosting-auf-dem-root-server-so-konfiguriert-man-apache/

aber an was soll ich definieren wer Zugreifen darf ? Die (erlaubten) User kommen ja mit dynamischen IP Adressen bei mir an ?

Dann bliebe dir noch der Weg über http://de.selfhtml.org/servercgi/server/htaccess.htm

Ich hab mal eine Spielkarte mit Passwort per Apache-Konfiguration gesetzt: xxxxx

Das geht schon, aber so richtig toll ist die Benutzerführung nicht. Man hat ja keine Verbindung zum Tileserver, bevor man eine Kachel lädt. Deshalb popt die Passwortabfrage auch erst auf,. wenn man versucht die erste Kachel zu laden und an der Stelle erwartet der User nicht unbedingt so ein Popup.

Alternativen fallen mir aber auch nicht ein. Alles was man dem OpenLayers mitgeben kann an Geheimnissen für den Tileserver, muss ja der Browser sehen. Und damit sieht das auch der mögliche Angreifer. Bevor ich da Arbeit reinstecke (Webserver fragt User nach Passwort, übermittelt dann dem Tileserver eine Freischaltung, der weiss dass dieser User darf…), würde ichs einfach drauf ankommen lassen :wink:

Grüße, Max

Edit: Link entfernt wegen #11

Verschiedene “offizielle” Angebote Verwenden bspw. den OWS Proxy von Mapbender, um die Seiten abzusichern. Dahinter liegen meistens WMS-Dienste, die nur mit entsprechender Berechtigung angezeigt werden können.

Link: http://www.mapbender.org/OWS_Proxy

Eine vergleichbare facade sollte sich auch für tiles machen lassen. In der tile URL ist dann einfach noch eine Session id drin die vom Proxy Script entsprechend geprüft wird.

Beispiel:
https://host/proxy/5481fac105287736/17/211/2.png

Die session id wird erst nach erfolgreicher Anmeldung von Server übermittelt und wird dann Teil der tile url.

Mod_tile selbst (sollte das zur Verwendung kommen) hat keine Moeglichkeit der Zugriffskontrolle. Aber wie bereits erwaehnt, macht man das ohnehin am besten auf dem Level von Apache, welches durch plug-ins nahzu jedes beliebige Authentifizierungssystem unterstuetzt. Wenn es eine interne Anwendung ist, kann man das sogar moeglicherweise per Firewallregeln erledigen.

Je nach dem wie das restliche Authentifizierungssystem der Anwendung funktioniert, sollte man den Tileserver mit mehr oder weniger Aufwand dort einbinden koennen.

Moeglicherweise das einfachste ist mod_auth_digest zu verwenden. Das sollte aehnlich zu http basic auth functionieren, nur das man dort wohl angeben kann das mehrere verschiedene Domains (z.B. die des Appservers und die des Tileservers) ein gemeinsames Passwort verwenden und somit der User nur einmal nach username und passwort gefragt wird und diese dann auch automatisch fuer den Tileserver verwendet wird.

Wenn es eine eigene Anwendung ist, warum nicht über den User Agent beschränken?

Wer die URL rausbekommt, der würde dann auch das mit der URL übergebene Passwort rausbekommen.

Ich würd die Tiles einfach in nen Ordner mit nem kryptischen Namen legen. Dann kann man die URL zumindest nicht mehr erraten.

Am besten wäre, wenn du Frank probierst mal zu formulieren, was du verhindern willst und wie die Rahmenbedingungen sind:
Soll Überlast verhindert werden?
Können Nutzer deinen Client/Webseite öffentlich nutzen?
Läuft das auf verschiedenen Clients und IPs?
Daran kann man dann besser die Schwerpunkte legen :slight_smile:

Nach einigem rumprobieren mit htaccess: Kann man vergessen, wenn man nicht gerade begeisterter Browsertester ist.

Wenn der Firefox in einen timeout läuft, weil man das Passwort noch auf dem Zettel unter der Tastatur suchen muss, erholt sich Openlayers nicht mehr und liefert nur noch rosa Kachel. Mit Opera läuft das bei mir gar nicht, weil das anscheinend unterscheidet zwischen Seiten die geschützt sind und per JavaScript eingebundenen Bildern.

Tach.

Ist die Anwendung selbst gegen unberechtigten Zugriff geschützt?
Wenn ja, hab ich eine Lösung mit einer zusätzlichen Zeile in der Webseite, zwei (winzigen) Skripten und einer .htaccess-Datei.

Ich müsste die aber mit ein paar Zeilen Prosa dokumentieren; daher die Frage: besteht nach den bereits vielen Antworten noch Interesse?

Orange Grüße
Der Assistent.

besteht nach den bereits vielen Antworten noch Interesse?

Ja :slight_smile:

  • Die Anwendung ist eine Webseite für eine Ortungslösung ist in ASP.NET programmiert läuft auf IIS Server und besitzt einen Login.
  • Tileserver steht bei Hoster (Ubuntu) - Openlayer holt dann die Kacheln in der ASP Anwendung vom Tileserver.
  • Somit greifen alle User die sich am Login angemeldet haben mit unterschiedlichen IPs auf die Tiles zu
  1. Session in Webseite einsetzen
  2. Direktzugriff auf Tiles komplett via htaccess unterbinden
  3. URL-Rewrite aktivieren, alle Anfragen nach Tiles auf ein Script umleiten
  4. Script prüft Session - nur bei gültiger Session Tile-Dateien vom Script lesen und wieder ausgegeben ("durchreichen)

Zu prüfen wäre dann noch, ob Dein Server bei dieser Variante noch erkennen kann, wann ein Tile erneut gerendert werden muss.

Ich würde einfach ein Token mitschicken, welches vom Server mit dem Login signiert wurde. Die Signatur kann dann auf dem Tile-Server überprüft werden.