Zum Inhalt

SASKIA.H2R (NetFramework)

Voraussetzungen#

Ausführliche Informationen zu Systemvoraussetzungen finden sie hier.

Installation IIS Webserver#

Klicken sie in der Systemsteuerung auf Windows-Features aktivieren oder deaktivieren.

serverrolle.png

Wählen sie im Anschluss im erscheinenden Dialog Assistent zum Hinzufügen von Rollen und Features die "Rollenbasierte oder featurebasierte Installation als Installationstyp aus und Klicken sie auf Weiter.

server-installationstyp.png

Aktivieren sie im Dialogschritt Serverrollen die folgenden Webserver (IIS) - Rollen:

server-installierte-rollen.png

Im Dialogschritt Features aktivieren sie bitte die folgenden Optionen:

server-installierte-features.png

Schließen sie den Dialog durch Betätigen von Installieren ab.

Im Windows Server Manager ist anschließend der Eintrag IIS verfügbar.

servermanager-iis.png

Nach der Installation der notwendigen Features können sie den IIS Manager per Rechtsklick auf dem entsprechend aufgelisteten Webserver aufrufen.

servermanager-iis-context.png

Damit ist die Installation von IIS für den Betrieb von H2R abgeschlossen

Installation Powershell Remoting Dienst#

Zur Durchführung des OnlineUpdates wir der Dienst Windows-Remoteverwaltung (WS-Verwaltung) benötigt.

Sie können diesen Dienst über folgenden Befehl in der Powershell direkt installieren.

Enable-PSRemoting

Weiterführende Informationen erhalten sie hier.

windows-remoteverwaltung.png

Installation H2R Anwendung#

Öffnen sie den IIS Manager und erstellen sie einen neuen Anwendungspool H2R mit den folgenden Einstellungen

  • Name: H2R
  • .Net CLR-Version: verfügbare .Net CLR-Version auswählen
  • verwalteter Pipelinemodus: Integriert
  • Anwendungspool sofort starten: Aktiviert

application-pool-h2r.png

Setzen sie anschließend in den erweiterten Einstellungen des Anwendungspools H2R den Eintrag Benutzerprofil laden auf True. Der korrekte Eintrag ist essenziell für die Realisierung des PDF Druckes mit Hilfe des IIS Servers. load-user-profile-h2r.png

Die H2R Anwendung muss nun als Website angelegt und dem Anwendungspool H2R zugeordnet werden. Klicken sie dafür mit der rechten Maustaste auf den Punkt Sites und wählen sie anschließend Website hinzufügen wesbite-h2r-anlegen-context.png

Folgende Angaben sind zu hinterlegen: wesbite-h2r-anlegen.png

  • Sitename: H2R
  • Physischer Pfad: D:\H2R (Bei Bedarf anpassen)
  • Bindung Typ: HTTP
  • Bindung Port: 80

Kopieren sie nun den Inhalt des durch das Saskia OnlineUpdates bereitgestellten Ordners H2R in den Ordner der zuvor erstellten Website.

In unserem Beispiel sollte der Ordner D:\H2R wie folgt aussehen: h2r-dateien.png

Hinweis

Die Datei wisej-server.lic wird beim ersten Start der Anwendung erstellt und prüft den hinterlegten Wisej.LicenseKey in der Web.config auf Gültigkeit. Für diese Anfrage muss der IIS Prozess per Webrequest mit der Adresse http://license.wisej.com/ kommunizieren können. Notwendige Proxyeinstellung für diese Verbindung können sie in der Web.config unter system.net.DefaultProxy hinterlegen.

Für den erstellten Ordner müssen je nach Sicherheitsrichtline volle Lese- und Schreibrechte für den Anwender IIS_IUSRS eingerichtet werden.

rechte-ordner-h2r.png

Im Anschluss sollte die H2R-Anwendung im Browser über die Serveradresse aufrufbar sein:

startbildschirm-h2r.png

Datei- und Ordnerstruktur#

Im folgenden Abschnitt werden die Datei- und Ordnerstruktur von H2R auf dem Webserver erläutert.

Ordner/Datei Beschreibung
bin Der bin-Ordner enthält den ausführbaren Programmcode von H2R sowie Übersetzungen/Lokalisierungen
Default.html enthält den Einstiegspunkt der Anwendung, wird beim Aufruf der URL geladen
Defaullt.json enthält Grundeinstellungen der H2R Webanwendung, z.B. Sessiontimeout oder verwendetes Theme
Web.config enthält IIS Konfigurationsangaben für die H2R Anwendung
central.config enthält die zentrale Konfiguration der mit H2R verbundenen Dienste (WCF)
sql.config enthält die für H2R zur Verfügung stehenden Datenbankverbindungsinformationen

Konfigurationsdateien#

Im folgenden Abschnitt werden die verschiedenen H2R-Konfigurationsdateien aufgelistet und beschrieben.

Mit Hilfe der Web.config Datei können IIS Anwendungen konfiguriert werden. Eine ausführliche Beschreibung der möglichen Einstellungen entnehmen sie bitte der offiziellen Windows Dokumentation.

<?xml version="1.0"?>
<configuration>
    <appSettings>
        <add key="Wisej.LicenseKey" value="ba2afe0be26448cb248b884ddf204fe3" />
        <add key="Wisej.DefaultTheme" value="saskia" />
        <add key="dbname" value="myDatabaseName" />
        <add key="configFile" value="central.config" />
        <add key="replication" value="false" />
    </appSettings>
    <system.net>
        <defaultProxy>
                <proxy autoDetect="false" bypassonlocal="true" proxyaddress="http://proxy.example.de:80" />
        </defaultProxy>
    </system.net>
    <system.web>
        <globalization requestEncoding="utf-8" responseEncoding="utf-8" />
        <httpRuntime targetFramework="4.8" maxRequestLength="1048576" />
        <httpModules>
            <add name="Wisej" type="Wisej.Core.HttpModule, Wisej.Framework" />
        </httpModules>
    </system.web>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <handlers>
            <add name="wisej" verb="*" path="*.wx" type="Wisej.Core.HttpHandler, Wisej.Framework" />
        </handlers>
        <security>
            <requestFiltering>
            <requestLimits maxAllowedContentLength="1073741824" />
            </requestFiltering>
        </security>
        <defaultDocument enabled="true">
        <files>
            <add value="Default.html" />
        </files>
        </defaultDocument>
    </system.webServer>
</configuration>
Konfigurationskey Beschreibung
appSettings.Wisej.LicenseKey enthält die Lizenz zum Starten der Anwendung auf einem Webserver. Die Lizenz wird von Saskia bereitgestellt
appSettings.Wisej.DefaultTheme enthält den Namen des Standardthemes
appSettings.dbname Beim Starten von H2R muss sich das System direkt mit einer vorhandenen Datenbank verbinden. Hier geben sie den Namen dieser Datenbank an
appSettings.configFile Angabe des Dateipfades zur central.config
appSettings.replication Parameter muss aus Kompatibilitätsgründen immer auf false gesetzt werden
system.net.defaultProxy Angabe des Proxies zur Lizenzabfrage Wisej, wenn Server hinter einem Proxy betrieben wird

In dieser Anwendungskonfigurationsdatei kann das Verhalten der Webanwendung H2R beeinflusst werden. Eine ausführliche Beschreibung der Einstellungen finden sie hier

//
// Application Configuration:
//
// All settings are optional.
//
// startup:                    Full name of the startup method. i.e. "MyApp.Program.Main, MyApp".
// mainWindow:                 Full name of a view (Page or Form) created automatically at startup. i.e. "MyApp.MainView, MyApp".
// theme:                      Name of the theme, without the extension, to load at startup.
// url:                        Destination URL. If null, the request must match a web page.
// allowedRoutes:              Allows the application to handle different Url routes, separated by a semicolon. i.e. "api;admin;query/users".
// culture:                    The default culture of the application. Default: "auto" (detects the culture from the browser.)
// rightToLeft:                Enables or disables Right to Left mode: true, false or auto. Default: "auto".
// sessionTimeout:             Timeout of the session in seconds. Default: 120. Minimum: 60. Disable: 0.
// responseTimeout:            Timeout of the Wisej requests in seconds. Default: 300. Minimum: 300.
//                             Increase this value if you expect your application to process long running requests.
// pollingInterval:            Interval for the automatic polling of the server in milliseconds. Default: 0 (disabled). Minimum: 1000.
//                             This option is ignored for WebSocket connections.
// autoReload:                 When true, the application is automatically reloaded when the session expires or Application.Exit() is called. Default: false.
// secure:                     Forces the client to use SSL. Default: false.
// showLoader:                 Loads the wisej ajax loader. Default: true.
// loaderTimeout:              Timeout before the appearance of the Ajax loader in milliseconds. Default: 5000. Minimum: 1000. Disable: 0.
// browserCheck:               Custom expression to validate the browser, i.e. "navigator.platform == 'Win32'".
// enablePWA:                  Enables PWA mode in browsers that support it. Default: false.
// offlineUrl:                 URL to navigate to when the client loses connectivity with the application. Default: "".
// notSupportedUrl:            URL of the not-supported page. Wisej will redirect here when the browser is not supported. Default: 'resource.wx/Wisej.Framework/NotSupported.html'
// notAvailableUrl:            URL of the not-available page. Wisej will redirect here when the server cannot accept any more sessions. Default: 'resource.wx/Wisej.Framework/NotAvailable.html'
// debug:                      Enables logging on the client browser console. Default: false.
// enableWebSocket:            Enables the user of WebSocket if available. Default: true.
// enableWebSocketCompression: Enables compression of incoming WebSocket data. Default: true.
// maxSessions:                Maximum number of active sessions (users) before redirecting to notAvailableUrl. Default: -1 (unlimited).
// maxModalStack:              Maximum number of nested modal dialogs. Default: 10.
// dropDuplicateClicks:        Drops all "execute" (clicks) events while there is a pending request. Touch and mouse clicks are still queued and will be executed. Default: false.
// disableClientObjectModel:   Disables the creation of the JavaScript object model on the client.
// validateClient              Verifies the client fingerprint when retrieving a session. Default: true.
// impersonate:                Set impersonate:true to impersonate the user on the server. Default: false.
// threadPool:                 Configures the thread pool without having to modify the machin.config file.
//                             All values are optional. i.e. {minWorkerThreads:100}. Default: null.
// options:                    Map of platform options. i.e. {"automation.mode": true, "mobile.mode": true, ...}.
// settings:                   Map of custom application settings. i.e. {jquery: "http://cdn...", rootPath: "c:\\users\\...", ...}.
//                             Custom settings are available using Application.Configuration.Settings.
{
    "url": "Default.html",
    "theme": "saskia",
    "options": { "mobile.mode": true },
    "startup": "SIS.H2r.Program.Main, SIS.H2r",
    "showLoader": false,
    "autoReload": true,
    "sessionTimeout":  600,
}

Warnung

Im aktuellen Entwicklungsstand kann die H2R-Anwendung nur mit SQL Server Datenbanken verbunden werden. Die Oracle-Anbindung wird bis zur Veröffentlichung von H2R implementiert.

Für den Connection String sind alle gültigen SQL Server- Varianten möglich. Details entnehmen sie bitte der offiziellen Microsoft-Dokumentation oder der Knowledge Database unter https://www.connectionstrings.com/sql-server/

<databases>
    <database name="MyDatabase>
        <provider name="Sql" namespace="System.Data.SqlClient" assembly="" brand="31" />
        <autocommit value="false" />
        <named_parameters value="true" prefix="@" />
        <multiple_connections value="false" />
        <null_empty_strings value="true" />
        <connection_string value="Data Source=my.domain.de;Initial Catalog=MyDatabase;MultipleActiveResultSets=True;pooling=false;" />
        <mars_supported value="true" />
        <custom_properties>
            <add name="dbu" value="SgRP9RTtNZpQvnKEH13kLiz0jmB7yX7XnrMEF7qz3p8=" />
        </custom_properties>
    </database>
</databases>

HTTPS Kommunikation aktivieren#

Um für die H2R-Anwendung eine verschlüselte Kommunikation zwischen Webbrowser und IIS Server zu erreichen, gehen sie bitte wie folgt vor:

Markieren sie im IIS-Manager ihre Website/Applikation und öffnen sie per Rechtsklick den Kontextmenüeintrag Bindungen bearbeiten bindung-bearbeiten.png

Es werden nun die vorhandenen Bindungen angezeigt. Über die Schaltfläche Hinzufügen können neue Bindungen hinzugefügt werden. sitebindungen.png

Folgende Angaben sind zu hinterlegen:

  • Bindung Typ: HTTPS
  • Bindung Port: 443
  • SSL-Zertifikat: verfügbares CA-Zertifikat oder Domainenzertifikat wählen

ssl-aktivieren.png

Domainenzertifikat erstellen#

In diesem Abschnitt beschreiben wir die Aktivierung von HTTPS für die H2R Anwendung über ein Domainenzertifikat.

Hinweis

Die Erstellung und Einrichtung CA-signierter Zertifikate ist nicht Bestandteil dieser Dokumentation.

Der H2R Server ist im Regelfall nur im internen Netz erreichbar. Kann daher kein CA-signiertes Zertifikat erstellt werden, empfehlen wir die Verwendung eines sogenannten Domänenzertifikats. Vorteilhaft sind dabei die Kostenerstarnis bei der Ausstellung von Zertifikaten und die einfache Bereitstellung.

Um ein Domainenzertifikat zu erstellen gehen sie bitte wie folgt vor:

Öffnen sie im IIS Manager den Dialog Serverzertifikate

serverzertifikate.png

Klicken Sie anschließend im Fenster Aktionen auf Domänenzertifikat erstellen.

domainenzertifikat-erstellen.png

Im Dialog tragen sie nun die Zertifikatsinformationen für ihren spezifischen Standort ein. Im Feld Gemeinsamer Name müssen Sie den vollständig qualifizierten Domänennamen des H2R Servers eingeben, beispielsweise `server.meine-domain.de.

domainenzertifikat-erstellen-maske.png

Nach Eingabe der Daten geben sie im Folgedialog bitte ihre Online-Zertifizierungsstelle an.

onlinezertifizierungsstelle.png

Schließen sie die Domainzertifikatserstellung durch Betätigen der Schaltfläche Fertig stellen ab.

Strict Transport Security (HSTS)-Unterstützung aktivieren#

Hinweis

IIS unterstützt mehrere Möglichkeiten, um eine sichere Übertragung mittels HTTPS zu erzwingen. Eine komplette Beschreibung finden sie hier.

IIS 10.0 bietet ab Version 1709 Native HSTS-Unterstützung. Aktivieren sie diese Einstellung im ISS Manager, in dem sie ihre Website auswählen und im Aktionsmenu HSTS auswählen:

hsts.png

Folgende Angaben sind zu hinterlegen:

  • Aktivieren: Ja
  • Max Age: 31536000
  • IncludeSubSomains: Ja (wenn Anwendung nicht über Subdomain auf dem Server genutzt wird)
  • HTTP an HTTPS umleiten

hsts-bearbeiten.png

Der Webserver liefert dann die korrekten Antwort-Header zurück, die sie über die Browser Console einsehen können. Damit ist HSTS korrekt für ihre H2R-Anwendung eingerichtet.

hsts-kontrolle.png

Subdomain-Handling

Prüfen sie ihre individuellen URL-Rewrite Regeln im Zusammenspiel mit HSTS, um ein korrektes Redirect-Verhalten zu erreichen. Die Einstellungsmöglichkeiten sind hier detailliert dokumentiert.

Wndows Authentifizierung (SSO Single Sign On) aktivieren#

Klicken sie in der Systemsteuerung auf Windows-Features aktivieren oder deaktivieren.

serverrolle.png

Wählen sie im Anschluss im erscheinenden Dialog Assistent zum Hinzufügen von Rollen und Features die "Rollenbasierte oder featurebasierte Installation als Installationstyp aus und Klicken sie auf Weiter.

server-installationstyp.png

Aktivieren sie im Dialogschritt Serverrollen die Webserver (IIS) - Rolle Windows-Authentifizierung.

windows-authentifizierung-aktivieren.png

Hinweis

Starten sie anschließend den IIS Dienst in der Dienstverwaltung neu

Im IIS Manager steht nun unter dem Punkt Authentifizierung die Option Windows-Authentifizierung zur Verfügung, welche sie aktivieren.

IIS Authentifizierungseinstellungen

Windows Authentifizierung aktivieren

Deaktivieren sie zusätzlich die anonyme Authentifizierung, wenn H2R nur für Domain-Anwender erreichbar sein soll.

Als letzten Schritt ergänzen sie folgenden Eintrag in der Web.config ihrer H2R-Installation

    <configuration>
        <system.web>
            <authentication mode="Windows" />
        </system.web>
    </configuration>

Installation von Schriftarten#

Die verfügbaren Mrt-Reports werden auf dem Server im Kontext des konfigurierten ApplicationPool-Anwenders erzeugt. Daher müssen alle benötigten Schriften für diesen Anwender verfügbar gemacht werden. Wir empfehlen die Installation der Schriftart für alle Windows-Anwender. Kopieren sie dafür die Schriftart-Datei auf den Server und wählen nach vorherigem Rechtsklick im Kontextmenü die Option Für alle Benutzer installieren.

Nach der Installation muss der Server zwingend neugestartet werden, damit die neue Schriftart verfügbar wird.

wichtiger Hinweis

Es muss ein Standarddrucker in dem Nutzerprofil des verwendeten App-Pool-Nutzers hinterlegt werden. Beachten sie dabei ihre Domainen-konfiguration und Gruppenrichtlinien!!!!