Informationen

PLANTA secure-Komponenten

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

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 wird in folgenden Dateien angepasst: config/globals.conf, config/secure.conf und config/ldap.conf
  • Der Server-Adapter wurde um die Authentifizierung per LDAP erweitert. Hierzu ist auch ein aktueller ClientAdapter nötig.

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
    • Backend: wird automatisch aus der globals.conf übernommen.
    • Andere Einstellungen sind in der config/secure.conf anzupassen.
    • Einstellungen der LDAP Schnittstelle sind in der config/ldap.conf zusammengefasst.
    • Logging: wurde in die config/logback.xml des Servers integriert.

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 durch Ausführen folgender Schritte aktiviert werden:
    • Ersetzen von keystore.jks und truststore.jks im config-Verzeichnis.
    • Ausführen von planta_ssl als Backend-Protokoll und
    • Konfiguration des entsprechenden Passworts in config/secure.conf

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 die JAVA-Servlet-API-Version unterstützen, die dem Stand Ihrer-Secure-Komponente entspricht. Hierzu sehen Sie Release Notes zu der von  Ihnen eingesetzten Version. 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


Reverse-Proxy

Informationen

  • 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" 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;
        }
    }
}
PY

Client-Adapter

Informationen

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

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.