...
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 | ||
---|---|---|
| ||
... "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 File UserStore SystemStore Store Path Name Password SerialNumber (or Serial or SerialNo) SubjectName (or Subject) Selektionskriterium: Der Betreff (Subject) des zu verwendenden Zertifikats. Thumbprint 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 | ||
---|---|---|
| ||
... "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 | ||
---|---|---|
| ||
... "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 | ||
---|---|---|
| ||
...
"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 DbType ConnectionString |
ConnectObjects | JSON Objekt | Definiert das Verhalten beim Zugriff auf Connect Objekte. Dieses Objekt unterstützt folgende Eigenschaften: Provider RootPath |
DbLogging | JSON Objekt | Hier können zusätzliche Optionen für die Protokollierung des Datenbankzugriffs definiert werden. Dieses Objekt unterstützt folgende Eigenschaften: LogLevel EnableSensitiveDataLogging EnableDetailedErrors |
Beispiel
Code Block | ||
---|---|---|
| ||
... "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 } } } |
...