Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Dieser Abschnitt erlaubt die Einschränkung der Host-Namen, an welche der Webserver gebunden werden kann. Somit lässt sich der Zugriff über unerwünschte Hostnamen oder über IP-Adressen verhindern. Mehrere Werte können durch ein Semikolon getrennt werden. Weitere Informationen finden Sie unter folgendem Link:

...

Beispiel

...

Code Block
...
  "AllowedHosts": "connect.mycompany.com;localhost",
...

...

Eigenschaft

Typ

Funktion

Enabled

Boolean

Diese Option aktiviert oder deaktiviert die Protokollierung des eingehenden aus ausgehenden HTTP-Verkehrs. Da diese Funktionalität bei Bedarf auch zur Laufzeit über die GUI aktiviert oder deaktiviert werden kann, empfiehlt es sich, diese Voreinstellung auf dem Wert “false” zu belassen.

Include

Array mit Werten vom Typ String

Dieser Wert enthält eine Auflistung von Regular Expressions. Nur URIs, welche zu einer der hier aufgelisteten Regular Expressions passen, werden bei der Protokollierung berücksichtigt. Wird dieser Wert nicht definiert, so werden generell aller URIs in die Protokollierung miteinbezogen.

Exclude

Array mit Werten vom Typ String

Dieser Wert enthält eine Auflistung von Regular Expressions. Nur URIs, welche nicht zu einer der hier aufgelisteten Regular Expressions passen, werden bei der Protokollierung berücksichtigt. Wird dieser Wert nicht definiert, so werden keine URIs von der Protokollierung ausgeschlossen.

ForceHexDump

Boolean

Ist dieser Wert nicht definiert oder auf false gesetzt, so entscheidet der Connect Server, anhand des Content Types inwiefern der Inhalt einer HTTP-Nachricht als Text oder als Hexdump angezeigt wird. Wird dieser Wert auf true gesetzt, wird die Darstellung des Inhalts von HTTP-Nachrichten als Hexdump erzwungen (unabhängig vom Inhalt).

Der Abschnitt EnableBackgroundExceptions (JSON Wert vom Typ Boolean)

Beispiel:Dieser Wert steuert den Umgang mit bei der Hintergrundverarbeitung auftretenden Exceptions. Diese Option sollte nach Möglichkeit nicht definiert oder auf den Wert false gesetzt werden. Der Wert true macht nur während des Debuggings oder innerhalb von Unit Tests Sinn.

Beispiel

Code Block
languagejson
...

  "Debug": {
    "HttpLogging": {
      "Enabled": false,
      "Include": [
        ".*"
      ],
      "Exclude": [
        "^(http|https)://[^/]+/_content/",
        "^(http|https)://[^/]+/_framework/",
        "^(http|https)://[^/]+/api/",
        "^(http|https)://[^/]+/css/",
        "^(http|https)://[^/]+/font/",
        "^(http|https)://[^/]+/js/",
        "^(http|https)://[^/]+/lib/",
        "^(http|https)://[^/]+/[sS]erver/",

        "^(http|https)://[^/]+/$",
        "^(http|https)://[^/]+/favicon.ico$",
        "^(http|https)://[^/]+/index.html$",
        "^(http|https)://[^/]+/[sS]erver$",
        "^(http|https)://[^/]+/[^/]+.css$"
      ],
      "ForceHexDump": false
    },
    "EnableBackgroundExceptions": false
  },
  
...

Der Abschnitt

...

Dieser Wert steuert den Umgang mit bei der Hintergrundverarbeitung auftretenden Exceptions. Diese Option sollte nach Möglichkeit nicht definiert oder auf den Wert false gesetzt werden. Der Wert true macht nur während des Debuggings oder innerhalb von Unit Tests Sinn.

Der Abschnitt “Endpoints“ (JSON “Endpoints“ (JSON Array)

Dieser Abschnitt dient zur Konfiguration des integrierten Webservers und enthält ein Array mit Informationen zu den Enpoints. Die einzelnen Elemente des Arrays besitzen folgende Eigenschaften:

Eigenschaft

Typ

Funktion

Uri

String

Diese Eigenschaft enthält die URI des gewünschten Endpoints. Schema und Host werden zwingend benötigt, die Angabe eines Ports ist optional. Ist kein Port angegeben, so werden die jeweiligen Standard-Ports (80 bei HTTP und 443 bei HTTPS) verwendet. Wird als Host keine IP-Adresse angegeben, so wird der angegebene Name mittels DNS Lockup in eine IP-Adresse umgewandelt. Die IP-Adressen 0.0.0.0 oder * stehen für alle verfügbaren IP-Adressen des Servers.

Certificate

JSON Objekt

Diese Eigenschaft wird nur bei der Verwendung von HTTPS benötigt. Das hir angegebene JSON Objekt benötigt folgende Eigenschaften:

Source
Gibt den Speicherort des Zertifikats an. Hierbei werden folgende Werte unterstützt:

File
Das Zertifikat liegt als Datei vor.

UserStore
Das Zertifikat liegt im benutzerspezifischen Zertifikatspeicher.

SystemStore
Das Zertifikat liegt im systemspezifischen Zertifikatspeicher.

Store
Das Zertifikat liegt in einem Zertifikatspeicher und Connect versucht diesen anhand der weiteren Daten zu ermitteln.

Path
Nur für Source “File”: Der Pfad zur Zertifikatdatei oder der Pfad zu dem Verzeichnis, welches die Zertifikatdatei enthält.

Name
Nur für Source “File”: Enthält die Eigenschaft “Path” das Verzeichnis, welches die Zertifikatdatei enthält, so muss hier der Dateiname der Zertifikatdatei angegeben werden. Andernfalls kann diese Eigenschaft weggelassen werden.

Password
Nur für Source “File”: Das Passwort für den in der Zertifikatdatei enthaltenen privaten Schlüssel.

SerialNumber (or Serial or SerialNo)
Selektionskriterium: Die Seriennummer des zu verwendenden Zertifikats.

SubjectName (or Subject)

Selektionskriterium: Der Betreff (Subject) des zu verwendenden Zertifikats.

Thumbprint
Selektionskriterium: Der Fingerabdruck (Thumbprint) des zu verwendenden Zertifikats.

Die Selektionskriterien werden nur dann ausgewertet, wenn das Zertifikat aus einem Zertifikatspeicher gelesen werden soll. Es müssen nicht alle möglichen Selektionskriterien spezifiziert werden, die Zertifikatsuche muss jedoch zu einem eindeutigen Ergebnis führen. Erfüllen mehrere Zertifikate die Selektionskriterien, kann der Webserver nicht gestartet werden.

Die Verwendung mehrerer Zertifikate am selben Endpoint wird derzeit nicht unterstützt. Ist ein Endpoint über verschiedene Hostnamen erreichbar, so müssen diese in einem Zertifikat aufgelistet sein. Wildcard-Zertifikate werden ohne Einschränkungen unterstützt.

Beispiel

...

Code Block
languagejson
...
  
  "Endpoints": [
    {
      "Uri": "http://*:80"
    },
    {
      "Uri": "https://*:443",
      "Certificate": {
        "Source": "File",
        "Path": "C:\Certificates",
        "Name": "Certificate.pfx",
        "Password": "CertificatePassword"
      }
    },
    {
      "Uri": "https://192.168.100.100:444",
      "Certificate": {
        "Source": "Store",
        "SerialNumber": "0123456789"
      }
    }
  ],
  
...

...

Dieser Abschnitt definiert die im Dialog zur Pflege von Sprachabhängigen Texte auswählbaren Sprachen. Hierbei werden sowohl generische Sprachschlüssel (wie “en” oder “de”) als auch gebietsspezifische Sprachschlüssel (wie “en-US”, “en-UK”, “de-DE” oder “de-AT”) unterstützt.

Beispiel

...

Code Block
languagejson
...

  "Frontend": {
    "SupportedLanguages": [ "de", "en", "es", "fr", "it", "nl" ]
  },

...

...

Dieser Abschnitt enthält ein weiteres JSON Objekte mit dem Namen “LogLevel”, welches den Detailgrad der Protokollausgaben festlegt. Hierbei enthält die Eigenschaft “Default” die Standardeinstellung, weitere vorhandene Eigenschaften definieren ggf. abweichende Einstellungen für bestimmte .NET Namensräume. Für den Detailgrad werden folgende die Werte “Trace”, “Debug”, “Information”, “Warning” und “Error” unterstützt.

Beispiel

...

Code Block
...

  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "IdentityServer4": "Warning",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },

...

Bei Bedarf kann der Detailgrad in Abhängigkeit vom Protokollierungsziel (Konsole, Event Log, etc.) spezifiziert werden. Weitergehende Informationen finden sie unter folgendem Link:

...

Der Abschnitt

...

„Security“ (JSON Objekt)

Dieser Abschnitt hat in der aktuellen Version des Connect Servers noch keine Funktionalität. In Zukünftigen Versionen können hier die Parameter für eine reversible Verschlüsselung der Passwörter für SSL-Zertifikate und Verbindungszeichenfolgen definiert werden, so dass diese nicht mehr im Klartext hinterlegt werden müssen. 

Der Abschnitt „Database“ (JSON Objekt)

Dieser Abschnitt enthält Konfigurationsdaten für die Verbindung zu den von der Applikation verwendeten Datenbanken. Für jede Datenbank muss ein untergeordnetes JSON Objekt angelegt werden, dessen Name der internen ID der zugehörigen Datenbank entspricht. Der Connect Server verwendet im Moment folgende Datenbanken:

...

Datenbank ID

...

Funktion

...

Identity

...

Benutzer und Berechtigungen des Identity Servers

...

Monitoring

...

Datenbank zur Sammlung von Monitoring-Daten

...

Operations

...

Datenbank zur Speicherung von Ablaufdaten

 

Für jede Datenbank können die folgenden Informationen hinterlegt werden:

...

Eigenschaft

...

Typ

...

Funktion

...

Type

...

String

...

Typ der Datenbank. Normalerweise wird hier “Sqlite” verwendet, ”SqlServer” wird aktuell experimentell unterstützt. Eine Unterstützung für “MySql” ist in Planung, derzeit ist jedoch die finale Implementierung der EF Core Adapter für .NET 5.0 noch nicht verfügbar.

...

ConnectionString

...

String

...

Die Verbindungszeichenfolge für die zu verwendete Datenbank.

...

LogLevel

...

String

...

Der gewünschte Detailgrad für Datenbank-spezifische Protokollausgaben. Es werden die Werte “Trace”, “Debug”, “Information”, “Warning” und “Error” unterstützt.

...

EnableSensitiveDataLogging

...

Boolean

...

Wird dieser Wert auf “true” gesetzt, so werden bei der Protokollierung auch Feldinhalte mit ausgegeben, andernfalls werden diese stets unterdrückt.

...

EnableDetailedErrors

...

Boolean

...

Der Abschnitt “IpFiltering“ (JSON Objekt)

In diesem Abschnitt kann der Zugriff auf den Connect Server auf bestimmte IP-Adressen beschränkt werden. Hier können folgende Werte hinterlegt werden:

Eigenschaft

Typ

Funktion

Enabled

Boolean

Diese Option aktiviert oder deaktiviert die Filterung nach IP-Adressen.

Blacklist

Array mit Werten vom Typ String

Dieser Wert enthält eine Auflistung der IP-Adressen oder Netzwerke (CIDR-Adressen), welche vom Zugriff auf den Webserver ausgeschlossen werden sollen. Ist die Blacklist leer oder nicht angegeben, so wird lediglich die Whitelist betrachtet.

Whitelist

Array mit Werten vom Typ String

Dieser Wert enthält eine explizite Auflistung der IP-Adressen oder Netzwerke (CIDR-Adressen), welche auf den Webserver zugreifen dürfen (sofern sie nicht in der Blacklist enthalten sind). Ist die Whitelist leer oder nicht angegeben, so wird lediglich die Blacklist betrachtet (sofern verfügbar).

Der Abschnitt “JsonEncryptionKey“ (JSON Wert vom Typ String)

Um Passwörtern im Klartext zu vermeiden, werden diese vor der Speicherung in Dateien oder in der Datenbank verschlüsselt. Dieser Wert wird bei der Generierung des Schlüssels miteinbezogen, so dass nur Passwörter nur von Connect Servern entschlüsselt werden können, bei denen derselbe Wert hinterlegt ist. Ist dieser Wert nicht definiert oder leer, so wird ein in der Applikation hinterlegter Standardschlüssel verwendet. Bitte beachten Sie, dass nach einer Änderung dieses Schlüssels alle gespeicherten Passwörter neu eingegeben werden müssen.

Beispiel

Code Block
languagejson
...

  "Security": {
    "IpFiltering": {
      "Enabled": false,
      "Blacklist": [
      ],
      "Whitelist": [
        "::1",
        "127.0.0.1",
        "192.168.0.0/16"
      ]
    },
    "JsonEncryptionKey": ""
  },

...

Der Abschnitt „Workspace“ (JSON Objekt)

Dieser Abschnitt enthält Konfigurationsdaten für die Verbindung mit einem bestimmten Datenspeicher (Workspace). Hir können die folgenden Werte hinterlegt werden:

Eigenschaft

Typ

Funktion

Id

String

Enthält eine eindeutige ID zur Identifikation des Workspaces.

DataSource

JSON Objekt

Enthält die Informationen für die Verbindung mit der Datenbank mit Benutzern, Laufzeitinformationen und, je nach Konfiguration, den Connect Objekten. Dieses Objekt unterstützt folgende Eigenschaften:

Name
Enthält die ID des Workspaces. Dieser Wert muss normalerweise nicht angegeben werden und wird automatisch vorbelegt.

DbType
Definiert den Typ der verwendeten Datenbank. Derzeit werden hier die Werte “Sqlite” und ”SqlServer” unterstützt. Eine Unterstützung für “MySql” ist in Planung.

ConnectionString
Die Verbindungszeichenfolge, welche zum Herstellen der Verbindung mit der Datenbank verwendet wird. Bei der Verwendung von SQLite kann diese Eigenschaft weggelassen werden.

ConnectObjects

JSON Objekt

Definiert das Verhalten beim Zugriff auf Connect Objekte. Dieses Objekt unterstützt folgende Eigenschaften:

Provider
Definiert den für den Zugriff auf Connect-Objekte verwendeten Provider. Hier werden die Werte “Database” (Speicherung in der Datenbank) und “FileSystem” (Speicherung im Dateisystem) unterstützt.

RootPath
Sofern der Provider “FileSystem” verwendet wird, muss hier das Stammverzeichnis für die Ablage der Connect-Objekte definiert werden. Wird eine SQLite-Datenbank ohne Angabe eines Connection Strings verwendet, so definiert dieser Pfad auch das Verzeichnis, in dem die Datenbankdateien abgelegt werden.

DbLogging

JSON Objekt

Hier können zusätzliche Optionen für die Protokollierung des Datenbankzugriffs definiert werden. Dieses Objekt unterstützt folgende Eigenschaften:

LogLevel
Der gewünschte Detailgrad für Datenbank-spezifische Protokollausgaben. Es werden die Werte “Trace”, “Debug”, “Information”, “Warning” und “Error” unterstützt. Wird diese Eigenschaft nicht angegeben, wird der Standardwert “Error” verwendet.

EnableSensitiveDataLogging
Wird dieser Wert auf “true” gesetzt, so werden bei der Protokollierung auch Feldinhalte mit ausgegeben, andernfalls werden diese stets unterdrückt.

EnableDetailedErrors
Wird dieser Wert auf “true” gesetzt, so werden bei der Protokollierung detaillierte Fehlermeldungen der Datenbank ausgegeben.

Beispiel

Code Block
languagejson
...
  
  "Workspace": {
    "Id": "connect",
    "DataSource": {
      "DbType": "SqlServer",
      "ConnectionString": "Data Source=.\\SQLEXPRESS;Initial Catalog=connect;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
    },
    "ConnectObjects": {
      "Provider": "Database",
      "RootPath": ""
    },
    "DbLogging": {
      "LogLevel": "Warning",
      "EnableSensitiveDataLogging": false,
      "EnableDetailedErrors": true
    }
  }

...
Der Abschnitt “RetentionPeriods” (JSON Objekt)

...

Code Block
{
  "AllowedHosts": "*",

  "Debug": {
    "HttpLogging": {
      "Enabled": false,
      "Include": [
        ".*"
      ],
      "Exclude": [
        "^(http|https)://[^/]+/_content/",
        "^(http|https)://[^/]+/_framework/",
        "^(http|https)://[^/]+/api/",
        "^(http|https)://[^/]+/css/",
        "^(http|https)://[^/]+/font/",
        "^(http|https)://[^/]+/js/",
        "^(http|https)://[^/]+/lib/",
        "^(http|https)://[^/]+/[sS]erver/",

        "^(http|https)://[^/]+/$",
        "^(http|https)://[^/]+/favicon.ico$",
        "^(http|https)://[^/]+/index.html$",
        "^(http|https)://[^/]+/[sS]erver$",
        "^(http|https)://[^/]+/[^/]+.css$"
      ],
      "ForceHexDump": false
    }
  },

  "Endpoints": [
    {
      "Uri": "http://*:80"
    }
  ],

  "Frontend": {
    "SupportedLanguages": [ "de", "en", "es", "fr", "it", "nl" ]
  },

  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },

  "Security": {
    "IpFiltering": {
      "Enabled": false,
      "Blacklist": [
      ],
      "Whitelist": [
        "::1",
        "127.0.0.1",
        "192.168.0.0/16"
      ]
    },
    "JsonEncryptionKey": ""
  },

  "Workspace": {
    "Id": "defaultconnect",
    "DataSource": {

     "Name": "connect",
      "DbType": "sqlite"
    },
    "ConnectObjects": {
      "Provider": "filesystem",
      "RootPath": "Workspaces/defaultconnect"
    },
    "DbLogging": {
      "LogLevel": "Warning",
      "EnableSensitiveDataLogging": false,
      "EnableDetailedErrors": true
    }
  }
}

...