[webserverjs]

Definiert Optionen für webserver.js, den Node.js-basierten Webserver der innerhalb eines JavaScript Managers läuft.

[webserverjs] accessControlAllowOrigin

Typ
string

Definiert eine Liste von URLs die bei einem CORS request als "origin" erlaubt sind. Für jeden erlaubten URL muss eine eigene Zeile hinzugefügt werden.

Beispiel:

accessControlAllowOrigin = "https://redu1:8443"
accessControlAllowOrigin = "https://redu2:8443"

Wenn dieser config-Eintrag verwendet wird, darf kein config-Eintrag "httpHeader" für den HTTP header "Access-Control-Allow-Origin:" verwendet werden.

[webserverjs] allowExternalResources

Typ
bool
Default
0
Wertebereich
0|1
Definiert ob webserver.js das Einbetten von externen Ressourcen (z.B. ULC UX Frames) von einem anderen Host und/oder Port in das Dashboard erlaubt.

[webserverjs] canEditPermissionBit

Typ
int
Default
3
Wertebereich
1..32
Definiert das Benutzer-Berechtigungsbit, das ein Dashboard-Benutzer benötigt, um Dashboards zu editieren.

[webserverjs] canPublishPermissionBit

Typ
int
Default
4
Wertebereich
1..32
Definiert das Benutzer-Berechtigungsbit, das ein Dashboard-Benutzer benötigt, um Dashboards zu publizieren.

[webserverjs] canWritePermissionBit

Typ
int
Default
4
Wertebereich
0..32
Definiert das Benutzer-Berechtigungsbit, das ein Dashboard-Benutzer benötigt, um Schreibzugriff auf Datenpunkte zu bekommen. Wenn der Wert auf 0 gesetzt wird, ist der Schreibzugriff für alle Dashboard-Benutzer gesperrt.

[webserverjs] dashboardSharedLicenses

Typ
uint
Default
0
Wertebereich
>=0
Definiert die Anzahl der Dashboard Desktop Lizenzen, die für mobile Clients verwendet werden können, falls keine weiteren Dashboard Mobile Lizenzen mehr frei sind.

[webserverjs] diskCheckDp

Typ
string
Default
"_ArchivDisk"
Definiert den Namen des Datenpunkts, mit dem der verfügbare Platz für Dateien, die über den WebSocket-Server hochgeladen werden, abgefragt wird. Muss vom Datenpunkttyp _DiskSpaceCheck sein. Siehe auch DP_DiskCheck im Abschnitt [data].

[webserverjs] diskCheckLimit

Typ
int
Definiert den Speicherplatz in kB auf der Server-Disk, der verfügbar sein muss, um Dateien über den WebSocket-Server hochladen zu können. Wenn dieser Wert nicht konfiguriert ist, wird der Grenzwert für die Warnung des Datenpunkts verwendet, der unter diskCheckDp definiert ist.

[webserverjs] favIcon

Typ
string
Default
/pictures/StandardIcons/Console_20.png
Definiert den relativen Pfad zum Icon, welches bei Anfrage nach "/favicon.ico" geliefert wird.

[webserverjs] heartbeatSeconds

Typ
int
Default
5
Gibt an, in welchem Interval (in Sekunden) Heartbeat-Nachrichten von webserver.js an alle verbundenen Clients geschickt werden. Dadurch können Verbindungsunterbrechungen schneller erkannt werden, auch wenn keine regulären Nachrichten gesendet werden. Wird dieser Wert auf 0 gesetzt, werden keine Heartbeat-Nachrichten gesendet.

[webserverjs] httpHeader

Typ
string
Default
See Description
Der Eintrag erlaubt es Inhalte des HTTP Headers zu setzen. Hiermit können HTTP Header spezifische Einstellungen für die HTTPS Kommunikation konfiguriert werden. Der httpHeader kann mehrmals gesetzt werden um mehrfache Einstellungen vorzunehmen. Jeder Eintrag setzt einen zusätzlichen HTTP Header für die HTTPS Requests. Default:

  httpHeader = "X-XSS-Protection: 1; mode=block"
  httpHeader = "X-Content-Type-Options: nosniff"
  httpHeader = "Cache-Control: private"
  httpHeader = "Cache-Control: must-revalidate"
  

Um alle HTTP Header Einträge (inklusive des Default Werte) zu entfernen kann folgender Eintrag gesetzt werden:


  httpHeader = "-empty list-"
  

Hinweis: Mandatory Header Einträge werden dadurch nicht entfernt.

[webserverjs] httpsPort

Typ
int
Default
8443
Definiert den Port, der von webserver.js für eingehende HTTPS- und WSS-Verbindungen geöffnet wird. webserver.js unterstützt ausschließlich verschlüsselte Verbindungen, daher gibt es keinen config-Eintrag für einen ungesicherten HTTP-Port.

[webserverjs] indexPage

Typ
string
Default
/data/index.html
Definiert die Startseite, die webserver.js liefern soll, wenn die root URL "/" angefragt wird.

[webserverjs] jwtWssPort

Typ
uint
Default
8443
Wertebereich
>0
Das von webserver.js ausgestellte Token, mit dem sich ein Client am WebSocket-Server anmelden kann, enthält auch die Port-Nummer, mit der die WSS-Verbindung aufgebaut werden soll. Per default ist das der Port, mit dem webserver.js konfiguriert und gestartet wurde. Mit diesem Eintrag kann eine andere Port-Nummer definiert werden, die im Token eingetragen wird. Das ist z. B. notwendig, wenn webserver.js sich hinter einem Gateway oder Proxy befindet und der Server dadurch über eine andere Port-Nummer erreichbar ist.

[webserverjs] loginPermissionBit

Typ
int
Default
1
Wertebereich
1..32
Definiert das Benutzer-Berechtigungsbit, das ein Dashboard-Benutzer benötigt, um sich anzumelden.

[webserverjs] resourceName

Typ
string
Default
/websocket
Definiert den Pfad (Teil des URLs) zum WebSocket-Server für einkommende Verbindungen.

[webserverjs] strictTransportSecurityMaxAge

Typ
uint
Default
31536000 (= ~1 year)
Legt den Wert für den "max-age" Parameter fest der für die Strict-Transport-Security von webserver.js verwendet wird. Wenn der Wert 0 oder kein Wert gesetzt wurde wird die Strict-Transport-Security nicht verwendet. Hinweis: Sollten Probleme mit untrusted Zertifikaten auftreten, kann dieser Wert auf 0 gesetzt werden. Dies öffnet jedoch ein Sicherheitsleck.

[webserverjs] tokenAutoRefresh

Typ
bool
Default
0
Wertebereich
0|1
Wenn "tokenExpireWarning" auf einen Wert ungleich 0 gesetzt wurde, wird eine Verbindung nach einer Warnung geschlossen, wenn ein Token abläuft und der Client kein erneuertes Token sendet. Im einfachsten Fall kann eine automatische Erneuerung mit diesem Eintrag aktiviert werden: wenn der Client zum Zeitpunkt der Warnung ein noch gültiges Token an den Server schickt, wird es automatisch verlängert. NB: In einer typischen Konfiguration werden detaillierte Überprüfungen implementiert, bevor ein Token verlängert wird.

[webserverjs] tokenExpire

Typ
uint
Default
600
Wertebereich
5..28800
Definiert den Zeitraum in Sekunden, in dem ein von webserver.js ausgestelltes Token zur Authentifizierung gültig ist. Defaultwert ist 10 Minuten, möglicher Wertebereich ist von 5 Sekunden bis 8 Stunden.

[webserverjs] tokenExpireWarning

Typ
uint
Default
0
Wertebereich
0, 5..600
webserver.js kann eine Verbindung automatisch schließen, wenn die Gültigkeitsdauer des Authentifizerungs-Token abläuft. Bevor das passiert, wird eine Warnung an den Client geschickt, um ihm eine Möglichkeit zu geben, das Token zu erneuern. Diese Einstellung definiert, wie viele Sekunden (ungefähr) vor dem Schließen der Verbindung diese Warnung geschickt wird. Ist diese Einstellung auf 0 gesetzt (default), wird die Verbindung nicht automatisch geschlossen, und deshalb auch keine Warnung geschickt. In diesem Fall wird die Gültigkeitsdauer des Tokens nur beim Öffnen einer Verbindung überprüft.

[webserverjs] ulcUxHost

Typ
string
Default
localhost
Definiert den Hostnamen des HTTP Servers, der webclient_http.ctl ausführt, an den ULC UX Anfragen weitergeleitet werden. Der Defaultwert ist der Hostname des Servers, auf dem webserver.js läuft.

[webserverjs] ulcUxPort

Typ
int
Definiert den Port des HTTP Servers, der webclient_http.ctl ausführt, an den ULC UX Anfragen weitergeleitet werden.

[webserverjs] useSharedWorker

Typ
bool
Default
0
Wertebereich
0|1
Gibt an, ob Frontends, die sich mit diesem Server verbinden, einen SharedWorker (1) oder WebWorker (0) verwenden sollen.

[webserverjs] wssServerAddress

Typ
string

Dieser Eintrag definiert externe Adressen, unter denen webserver.js erreichbar ist (z. B. hinter einem Proxy). Dieser Eintrag kann mehrfach verwendet werden. Die erste angegeben Adresse wird im Authentifizierungs-Token mitgeschickt und sollte dem Server entsprechen, der auf dem lokalen System läuft. Alle angegeben Adressen werden von Clients verwendet, um bei einem Verbindungsabbruch alternative Server zu finden.

Wenn kein solcher Eintrag existiert, wird die Liste der verfügbaren Server dynamisch aktualisiert, wobei die lokalen Adressen verwendet werden.

[webserverjs] XFrameOptions

Typ
string
Default
SAMEORIGIN
Wertebereich
none

Eine Sicherheitsmaßnahme verbietet, Inhalte von einer anderen Webseite einzubetten. Man spricht auch von "clickjacking" Protection.

Um trotzdem Inhalte von einem fremden Server auf der eigenen verwalteten Webseite anzuzeigen, gibt es den HTML Header Parameter X-Frame-Options der dieses Verhalten konfigurierbar macht.

Dieser Parameter muss am fremden Server gesetzt sein und die URL des eigenen Server beinhalten um fremde Inhalten auf den eigenen Server darstellen zu können.

Es gibt vier verschiedene Optionen für diesen Config-Eintrag:

  • "none": deaktiviert den XFrameOptions-Eintrag.
  • "DENY": Fremde Inhalte von einem fremden Server werden nicht geladen.
  • "SAMEORIGIN": Es werden nur Inhalte vom eigenen Server geladen.
  • "ALLOW-FROM": Es können nur Inhalte geladen werden für welche der X-Frame-Options HTML Header Parameter korrekt gesetzt wurde. Muss am fremden Server konfiguriert werden.

Beispiel:

Erster Server: www.myFirstServer.com

Zweiter Server: www.mySecondServer.com

Um den Inhalt des zweiten Servers innerhalb des ersten Servers anzuzeigen (z.B. mittels iframe) muss der zweite Server innerhalb des HTML Headers die der Parameter "XFrameOptions: ALLOW-FROM http://www.myFirstServer.com" mitliefern. Dies kann über folgenden Eintrag innerhalb der Config des zweiten Webservers konfiguriert werden.

[webserverjs]
XFrameOptions = "ALLOW-FROM http://www.myFirstServer.com"