Die Dokumentation ab Version 39.5.17 von PLANTA project finden Sie in der neuen PLANTA Online-Hilfe.

PLANTA secure Neu ab S 39.5.22

Informationen

PLANTA Secure-Komponenten

PLANTA-secure.png

Überblick

Informationen
  • Um eine TCP-Verbindung in HTTP zu packen, wird das BOSH-Protokoll verwendet. Es hält sowohl Latenz als auch Mehraufwand gering, und das Grundprinzip eines Verbindungsmanagers ist genau was wir brauchen. Seine Entwicklung und weite Verbreitung ist sehr XMPP-zentrisch, dennoch ist es in der Lage, beliebige Nutzlasten zu befördern.
  • Für eine detaillierte Beschreibung des Protokolls an sich, siehe http://www.xmpp.org/extensions/xep-0124.html. Die Einführung durch PLANTA beschränkt sich auf einen einzigen Stream, Protokoll Version 1.6, wodurch der Support für Legacy-Gegenstücke oder gar Abfrage-Clients weg fällt. Bestätigungen finden keine Anwendung, können aber eingeführt werden, sollte dies die Verlässlichkeit erhöhen. Bisher gibt es auch keine Neusendungen; wenn die Verbindung unterbrochen ist und HTTP-Anfragen fehlschlagen, wird die PLANTA-Sitzung beendet wie bei normalen TCP-Verbindungen.

Installationsanweisungen

Informationen
  • Der Server-Adapter ist so zu konfigurieren, wie im entsprechenden Abschnitt weiter unten beschrieben, und muss in einem Server-Container bereitgestellt werden. Es wird eine direkte TCP-Verbindung zu einem bestehenden PLANTA-Server benötigt, und für einmalige Anmeldungen über Proxy zudem Authentifizierung, S 39.5.20 oder später mit einer kleinen Konfigurationsänderung.
  • Nachdem die Anwendungskonfiguration so eingestellt wurde, wie im entsprechenden Abschnitt weiter unten beschrieben, kann der Client-Adapter ohne Weiteres verwendet werden. Ein vorhandener PLANTA-Client muss verfügbar sein.
  • Im Unternehmen übliche Authentifizierungsmechanismen, wie z.B. Smartcards, können über entsprechende Plugins angesprochen werden. Bei Interesse wenden Sie sich bitte an Ihren zuständigen PLANTA-Consultant.

PLANTA-Server

Informationen
  • Die Konfiguration des PLANTA-Servers muss nicht geändert werden, es sei denn eine einfache Anmeldung über Proxy-Authentifizierung ist gewünscht.
  • In der Konfigurationsdatei config/globals.conf muss dem Authentifizierungsmethoden-Befehl der Zusatz 'proxy' beigefügt werden, um Proxy-Vorauthentifizierung zu genehmigen. Dies sorgt dafür, dass den eingehenden Verbindungen vertraut wird und die angegebene Benutzer-ID ohne weitere Prüfung angemeldet wird.
    • Somit besteht dasselbe Risiko wie bei der OS-Benutzer-Anmeldung, mit dem Unterschied, dass die Partei, der blind vertraut wird, der Server-Adapter und nicht der Client ist. Die Verbindung zum Server-Adapter muss daher verschlüsselt werden und die Authentifizierung bei diesem Szenario muss sicher sein!
  • Im Python-Modul ppms.proxy_auth gibt es eine Vordefinierte proxy_auth_resolve_username(proxy_user)-Methode, die vom Server aufgerufen wird. Es soll die PLANTA-Benutzer-ID zurückgeben, um sich im System anzumelden. Die Standardimplementierung gibt die Proxy-Benutzer-ID weiter.

Server-Adapter

Informationen
  • Der Server-Adapter kommt als Java-Servlet, konfigurierbar in Bezug auf
    • Deployment: über das Standard-WEB-INF/web.xml,
    • Backend: über die selbst-dokumentierende WEB-INF/classes/config.properties
    • Logging: über WEB-INF/classes/logback.xml.

Details

  • Voraussetzung für sicheres Einrichten ist ein vorhandener Anwendungsserver, in dem das Servlet bereitgestellt werden kann. Die Umgebung muss das JAVA-Servlet-API Version 3.0 oder später unterstützen und Java- Version 1.8 oder später. Um Sicherheitsanforderungen zu erfüllen, muss diese Anwendungsserver-Instanz so konfiguriert werden, dass nur vertrauenswürdige Anfragen vom Reverse-Proxy erlaubt sind, d.h. HTTPS mit wechselseitiger Authentifizierung. Hier wird exemplarisch dargestellt, wie Let's Encrypt-Zertifikate im Tomcat-Server hinterlegt werden.
  • Die TCP-Verbindung zwischen Server-Adapter und PLANTA-Server ist standardmäßig nicht verschlüsselt. SSL kann durch Ausführen folgender Schritte aktiviert werden:
    • Ersetzen von keystore.jks und truststore.jks im Web-Archiv
    • Ausführen von planta_ssl als Backend-Protokoll und
    • Konfiguration des entsprechenden Passworts in config.properties
      • Eine verschlüsselte PLANTA-Server-Instanz verpackt über STunnel ist erforderlich.

Reverse-Proxy

Informationen
  • Das BOSH-Protokoll funktioniert nicht mit HTTP-Pipelining und ist im Client-Adapter deaktiviert. Somit darf das Reverse-Proxy kein HTTP-Pipelining zur Weiterleitung von Anfragen an den Server-Adapter verwenden.
  • Fortbestehende Verbindungen ab HTTP 1.1 / zur Verringerung der Latenz und verbesserten Durchlauf sollte keepalive aktiviert sein, insbesondere bei Verbindungen mit SSL-Verschlüsselung.

Details

  • Der Wert für bosh.session.max_wait in der config.properties des Servlets muss kleiner sein als das "request timeout" oder "read timeout" des Reverse Proxy; andernfalls kann es bei Long-Polling Requests zu Abbrüchen mit einem "504 gateway timeout error" kommen.
    • Dies kann auch umgekehrt erreicht werden - wenn eine geringere Maximal-Request-Zeitüberschreitung gewünscht ist, sollte max_wait knapp unter diesem Wert liegen um Schwierigkeiten bei der Abrufanforderungen zu vermeiden.
  • Wenn Proxy-Authentifizierung im Server-Adapter aktiviert ist, kann der Name eines HTTP-Kopfes, der die Benutzer-ID enthält, konfiguriert werden. Der Wert dieses Feldes wird unverändert an den PLANTA-Server weitergegeben. Die Weiterbearbeitung findet im Customizing statt. Siehe den Abschnitt "PLANTA-Server" für weitere Informationen.

Hier ist ein Auszug einer nginx-Beispielkonfiguration für eine funktionierende Reverse-Proxy-Einrichtung

http {
    server {
        location /planta {
            # servlet location as defined during deployment
            proxy_pass http://servletcontainer.example.com:8080/PlantaServerAdapter/;

            # read timeout needs to be be set >= the value of
            # bosh.session.max_wait in the servlet's config.properties, which
            # defaults to 900
            proxy_read_timeout  900s;

            # persistent connections as per http keepalive improve both latency
            # and throughput, esp. with SSL connections
            proxy_http_version  1.1;
            proxy_set_header Connection  "";

            # just push some dummy value as proxy-authenticated user
            proxy_set_header iv-user nobody;
        }
    }
}

Client-Adapter

Informationen
  • Der Client-Adapter ist eine .NET-Clientanwendung, die über die selbst-dokumentierende Anwendungskonfiguration PlantaClientAdapter.exe.config konfiguriert werden kann.
  • Der Client-Adapter gibt alle Befehlszeilenargumente an den Client weiter. Ein potentieller Serverparameter wird entfernt, da der Client-Adapter seinen eigenen Host und Port bereitstellt und somit effektiv die Clientverbindung zu sich selbst umleitet.
Topic attachments
I Attachment History Size Date Comment
Pngpng PLANTA-secure.png r2 r1 20.2 K 2017-03-27 - 10:21  

         PLANTA project









 
  • Suche in Topic-Namen

  • Suche in Topic-Inhalten
This site is powered by the TWiki collaboration platform Powered by Perl