Technik/Installation

PLANTA secure

Information

PLANTA secure-Komponenten

PLANTA-secure.png

Installationsanweisungen

Information

  • 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.

  • 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

Information

Die Konfiguration des PLANTA-Servers erfolgt in containerisierten Installationen (z. B. Docker) über Umgebungsvariablen mit dem Präfix planta__server__, die im Manager-Container des PLANTA-Servers (z. B. in der docker-compose-Datei) gesetzt werden. Die verfügbaren Parameter sind im Topic Server-Parameter dokumentiert und nach Bereichen gruppiert, die den früheren Konfigurationsdateien (z. B. globals.conf, secure.conf, ldap.conf) entsprechen.

  • Die Konfiguration des PLANTA-Servers muss nicht geändert werden.

  • 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-E-Mail zurückgeben, um sich im System anzumelden. Die Standardimplementierung gibt die Proxy-Benutzer-E-Mail weiter.

Details

  • Der Server-Adapter ist nun in den Server integriert und läuft als Servlet in einem integrierten Applications-Server.

  • Dieses Feature muss über das Lizenzfile freigeschaltet werden.

  • Die Konfiguration der Server-Komponenten erfolgt über Umgebungsvariablen, die in den Bereichen Globals, Secure und Ldap unter Server-Parameter | ldap zu finden sind.

  • Der Server-Adapter wurde um die Authentifizierung per LDAP erweitert. Hierzu ist auch ein aktueller ClientAdapter nötig.

Server-Adapter

Information

Der Server-Adapter in containerisierten Installationen (z. B. Docker) wird über Umgebungsvariablen mit dem Präfix planta__server__ konfiguriert, die im Manager-Container des PLANTA-Servers (z. B. in der docker-compose-Datei) gesetzt werden. Die verfügbaren Parameter sind im Topic Server-Parameter dokumentiert und nach Bereichen gruppiert, die den früheren Konfigurationsdateien (z. B. globals.conf, secure.conf, ldap.conf) entsprechen.

  • Der Server-Adapter kommt als Java-Servlet, konfigurierbar in Bezug auf

    • Backend (Umgebungsvariablen aus dem Bereich Server)

    • Sicherheitsbezogene Einstellungen (z. B. 2FA-/Secure-Parameter) (Umgebungsvariablen aus dem Bereich Secure)

    • Einstellungen der LDAP-Schnittstelle (Umgebungsvariablen aus dem Bereich Ldap)

    • Logging des Server-Adapters wird weiterhin über die Logback.xml konfiguriert.

Details

  • Um die 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.

  • Die TCP-Verbindung zwischen Server-Adapter und PLANTA-Server ist standardmäßig nicht verschlüsselt. SSL kann aktiviert werden. Die Passwort-Parameter werden über Umgebungsvariablen aus dem Bereich Secure gesetzt.

Reverse-Proxy

Information

  • Das von PLANTA für die Verbindung verwendete 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" bzw. "read timeout" des Reverse-Proxys; 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

Python
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

Information

  • Der Client-Adapter ist in den PLANTA-Client integriert und kann in der planta.ini konfiguriert werden.

  • 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.