Ansichten:

Frage:
Warum wird der Web Client in einem iframe nicht angezeigt?
Der Web Client ist eine Softwarelösung, die es Ihnen ermöglicht, Dokumente zu verwalten, zu bearbeiten und zu teilen. Sie können den Web Client auf Ihrem eigenen Server installieren und über einen Browser aufrufen. Sie können den Web Client auch in einen iFrame einbetten, um ihn in eine andere Website zu integrieren. Ein iFrame ist ein HTML-Element, das es Ihnen erlaubt, eine andere Webseite in eine Webseite einzufügen.
Allerdings kann es sein, dass der Web Client nicht in einem iFrame angezeigt wird,wenn die Adresse des iFrames anders ist als die des Web Clients. Das liegt an den Sicherheitsrichtlinien des Browsers, den Sie verwenden. Viele Browserhersteller haben die Sicherheitsrichtlinien der Browser verstärkt, um Cross-Site Attacken abzuwehren. Cross-Site Attacken sind Angriffe, bei denen ein Angreifer versucht, Daten von einer anderen Website zu stehlen oder zu manipulieren, indem er einen iFrame oder ein Skript in eine Website einbettet.
Um solche Angriffe zu verhindern, verwenden viele Browser die sogenannte Same-Origin Policy. Diese Policy besagt, dass ein iFrame nur Inhalte von derselben Quelle laden darf, wie die Website, die den iFrame enthält. Die Quelle wird durch die Kombination von ProtokollHost und Port bestimmt. Wenn eine dieser Komponenten unterschiedlich ist, gilt die Quelle als anders und der iFrame wird blockiert.

Das bedeutet, dass wenn Sie den Web Client mit einer Adresse aufrufen, die anders lautet als die Seite ihres iFrames, der Web Client nicht darin angezeigt wird. Zum Beispiel, wenn Sie den Web Client mit der Adresse  https://iframe.example.com  aufrufen, aber der iFrame die Adresse http://iframe.example.com  hat, wird der iFrame blockiert, weil das Protokoll ( https  vs.  http ) unterschiedlich ist, oder wenn Sie die Adresse http://webclient.example.com aufrufen, weil der Host ( webclient vs. iframe ) unterschiedlich ist.

Anwort:
Um dieses Problem zu lösen, müssen Sie sicherstellen, dass die Adresse des Web Clients und die Adresse des iFrames dieselbe Quelle haben, d.h. dass sie das gleiche Protokoll, den gleichen Host und den gleichen Port verwenden. Alternativ können Sie versuchen, einen anderen Browser zu verwenden, der eine weniger strenge Same-Origin Policy hat, oder die Sicherheitseinstellungen Ihres Browsers anzupassen, um iFrames von anderen Quellen zu erlauben. Allerdings sollten Sie sich bewusst sein, dass dies ein Sicherheitsrisiko darstellen kann, da Sie sich dadurch anfälliger für Cross-Site Attacken machen.
Eine weitere Möglichkeit, die Same-Origin Policy zu umgehen, ist die Verwendung von CORS oder Proxy-Server. CORS steht für  Cross-Origin Resource Sharing  und ist ein Mechanismus, der es Webservern erlaubt, zu bestimmen, welche anderen Quellen auf ihre Ressourcen zugreifen dürfen. CORS verwendet HTTP-Header, um die Kommunikation zwischen verschiedenen Quellen zu steuern. Wenn Sie CORS verwenden wollen, müssen Sie die entsprechenden Header auf dem Server konfigurieren, der den Web Client hostet. Sie müssen auch sicherstellen, dass der Browser, den Sie verwenden, CORS unterstützt.
Ein Proxy-Server ist ein Server, der als Vermittler zwischen Ihrem Browser und dem Web Client fungiert. Er nimmt Ihre Anfrage entgegen und leitet sie an den Web Client weiter, als ob er von derselben Quelle stammen würde. Auf diese Weise können Sie die Same-Origin Policy umgehen, indem Sie den Proxy-Server als Zwischenstation verwenden. Sie müssen jedoch einen Proxy-Server finden oder einrichten, der Ihre Anfragen an den Web Client weiterleitet.

Die Einrichtung von CORS oder Proxy-Server ist eine technische Angelegenheit, die von Ihrem eigenen Server-Administrator oder IT-Dienstleister durchgeführt werden muss. DocuWare ist nicht verantwortlich für die Konfiguration oder den Betrieb Ihres Servers oder Ihres Netzwerks. DocuWare bietet Ihnen lediglich den Web Client als eine Softwarelösung an, die Sie auf Ihrem Server installieren und nutzen können.

Weitere Informationen:
„Working with Same-Origin Policy Restrictions“ - https://www.codecentric.de/wissens-hub/blog/working-origin-policy-restrictions
„Aktivieren ursprungsübergreifender Anforderungen (CORS) in ASP.NET Core“ - https://learn.microsoft.com/de-de/aspnet/core/security/cors?view=aspnetcore-8.0

Die nachfolgende Information dient als Adhoc Workaround, falls Sie gerade in einer Installation eines Kundensystems stecken und in ein Cross-Domain Szenario laufen. Bevor das Kundensystem live geht, muß das oben beschriebene Cross Domain Thema anderweitig umgesetzt worden sein!

Der Web Client wird seit DocuWare 6.5 mit erhöhten Sicherheitseinstellungen ausgeliefert.
D.h. wird der Web Client in einem iFrame einer Seite eingebunden, die nicht über die selbe Domain, bzw. Adresse aufgerufen wird ( cross domain ), so wird dies standardmäßig verweigert.
Um diesen Sicherheitsmechanismus zu deaktivieren, muss folgende Einstellung vorgenommen werden ( nach jedem Minor oder Major Update ):

  • Sichern Sie die Datei "C:\Program Files\DocuWare\Web\Platform\Web.config"
    Bzw.ältere Versionen "C:\Program Files (x86)\DocuWare\Web\Platform\Web.config"
  • Öffnen Sie die Datei "Web.config"
  • Suchen Sie folgenden Eintrag:
    <location path="WebClient">
      <system.webServer>
      <httpProtocol>
       <customHeaders>
        <add name="X-Frame-Options" value="SAMEORIGIN" />
       </customHeaders>
      </httpProtocol>
      </system.webServer>
    </location>
  • Entfernen Sie diesen Eintrag oder kommentieren Sie ihn aus (wie in diesem Beispiel):
    <!--<location path="WebClient">
      <system.webServer>
      <httpProtocol>
       <customHeaders>
        <add name="X-Frame-Options" value="SAMEORIGIN" />
       </customHeaders>
      </httpProtocol>
      </system.webServer>
    </location> -->
  • Speichern Sie Ihre Änderungen
  • Ein Neustart einer Komponente ist nicht erforderlich!

Der Web Client kann jetzt in einem cross domain iframe angezeigt werden.
Wenn Sie DocuWare 6.5 einsetzen, so müssen Sie zusätzlich Hotfix 21 installieren:
https://dwsupport.blob.core.windows.net/supportdownloads/hotfixes/6.5/DW6.5_Hot21.zip
 
Warnung: Wenn Sie die X-Frame-Option SAMEORIGIN deaktivieren, öffnen Sie eine Sicherheitslücke. Mit dieser können Angreifer, Requests von anderen Origins senden und somit als   cross site scripting  ausnutzen.
Deshalb empfehlen wir, die SAMEORIGIN Option beizubehalten und beide Anwendungen (In welcher DocuWare als iFrame eingebettet wird und DocuWare selbst) auf dem gleichen Server zu betreiben.
 
Browser der neuesten Generation verbieten zudem Cross Domain Kommunikationen ohne HTTPS.
Deshalb gilt ab DocuWare 7.4:
HTTP wird für die Verwendung von DocuWare innerhalb eines iframe nicht unterstützt (außer bei Firefox oder wenn die iframe-Domäne mit der Browser-Domäne identisch ist).
Siehe technische Änderungen in DocuWare 7.4
Kommentare (2)