Embedded Office läuft als Microservice im enaio® Service Manager. Im Frontend nutzt Embedded Office die Editoren von ONLYOFFICE. Die Datenübernahme-Plugins im ONLYOFFICE sind wiederum Teil des Microservices. Schematischer Aufbau:
Ab Chrome 115 wird aus Sicherheitsgründen verhindert, dass Tabs/IFrames interagieren, welche von einer Domain über eine zweite Domain wiederum die erste einbinden wollen, was genau das EO-Szenario von oben ist.
Da das enaio-Gateway bisher keine WebSockets unterstützt (Stand enaio 11.0), kann unser Microservice leider nicht als Vermittler zu ONLYOFFICE genutzt werden, da für so dynamische Online-Anwendungen wie ONLYOFFICE/Embedded Office WebSockets dringend benötigt werden und Embedded Office hinter dem enaio-Gateway liegt. Die Alternative SSO ist im enaio-Gateway aktuell ebenfalls unrealistisch, da dieser derzeit auch http/2 nicht unterstützt.
Um dem zu entgehen, ist es möglich, ONLYOFFICE und das enaio-Gateway (und damit in Verlängerung den Service-Manager mit Embedded Office) hinter eine gemeinsame URL zu bringen. Dazu kann ein WebSocket- und NTLM-Fähiger Proxy wie z. B. Caddy dienen:
Im Client sieht dies dann URL- bzw. Domain-technisch so aus und funktioniert mit modernen Browser-/Chrome-Versionen:
Das Open-Source-Tool Caddy kann (hier beispielhaft inklusive des NTLM-Plugin) hier bezogen werden: https://caddyserver.com/api/download?os=windows&arch=amd64&p=github.com%2Fcaddyserver%2Fntlm-transport&idempotency=37127088544998
Caddy ist eine einfache EXE-Datei, welche direkt auf dem/einem der enaio-Server betrieben werden kann:
Konfiguriert wird dieser in diesem Fall mit einer einfachen Textdatei „Caddyfile“. Hier der beispielhafte Inhalt:
:80 {
route /onlyoffice/* {
uri strip_prefix /onlyoffice
reverse_proxy http://10.10.10.20:8088 {
header_up X-Forwarded-Host {http.request.host}/onlyoffice
header_up X-Forwarded-Proto http
}
}
reverse_proxy {
transport http_ntlm {
}
to http://10.10.10.10:81
}
}
- Im Beispiel läuft ONLYOFFICE auf Port
8080
auf dem Server mit der IP10.10.10.20
. - Das enaio-Gateway ist am Server
10.10.10.10
auf Port81
konfiguriert (damit Caddy wahlweise auch auf diesem Server laufen kann). - Caddy lauscht auf Port
80
und fasst dort beide Upstreams zusammen.
Selbstverständlich könnte Caddy auch die TLS-Terminierung oder viele andere Proxy-Aufgaben übernehmen.
Wenn der Caddy-Proxy als Windows-Service konfiguriert werden soll, hat es hier eine Anleitung auf Basis der in Windows mitgelieferten sc.exe
: