Skip to content

Konfiguration DocumentSign-Service

Die Konfiguration erfolgt in der Datei appsettings.json. Die nachfolgenden Unterkapitel beschreiben jeweils einen Toplevel-Eintrag.

Hinweis: Pfadangaben müssen mit doppelte Backslashes geschrieben werden.

Serilog

"Serilog": {
  "MinimumLevel": {
    "Default": "[LEVEL]"
  },
  "WriteTo": [
    {
      "Args": {
        "path": "[PATH]",
        "rollingInterval": "Day"
      },
      "Name": "File"
    },
    {
      "Name": "Console"
    }
  ]
}

Dies ist die Serilog-Konfiguration. Serilog wird insbesondere für das File-Logging gebraucht.

MinimumLevel.Default

Folgende Log-Levels werden unterstützt:

  • Verbose
  • Debug
  • Information
  • Warning
  • Error
  • Fatal

Die Log-Levels Verbose und Debug sollten nur für Fehlersuche gesetzt werden, da die geloggte Menge gross werden kann.

WriteTo.Args.Path

Hier wird der Pfad zum Log-File gesetzt. Bsp.: C:\\temp\logs.log

Weitere Konfigurationen

Weitere Konfigurationen siehe https://github.com/serilog/serilog-settings-configuration.


Database

"Database": {
  "DatabaseProvider": "[Provider]",
  "ConnectionStrings": {
    "MSSQL": "[Connection-String]",
    "PostgreSQL": "[Connection-String]",
  }
}

Das vorliegende JSON-Konfigurationsobjekt "Database" enthält Einstellungen für die Datenbankverbindung in der Anwendung. Es umfasst die folgenden Informationen:

  • DatabaseProvider: Hier wird die Datenbanktechnologie angegeben, der in der Anwendung verwendet wird. Es wird "MSSQL" oder "PostgreSQL" unterstützt.
  • ConnectionStrings: Dieser Abschnitt enthält die Connection-Strings für die beiden unterstützten Datenbanktechnologien "MSSQL" und "PostgreSQL". Die Connection-Strings sind Platzhalter für die tatsächlichen Verbindungsinformationen, die benötigt werden, um eine Verbindung zur jeweiligen Datenbank herzustellen.

E-Mail-Server

Konfiguriert einen E-Mail-Server, der für alle Mandanten verwendet wird, um E-Mails zu versenden. Ein mandanten-spezifischer E-Mail-Server kann auf Mandanten-Ebene konfiguriert werden.

"EmailConfiguration": {
    "SmtpHost": "[SMTP Host]",
    "SmtpPort": [PORT],
    "UserId": "[SMTP User ID]",
    "Password": "[SMTP Password]",
    "SslEnabled": [true/false],
    "EMailFrom": "[SMTP Sender E-Mail]"
}
  • SmtpHost: Hier wird der Hostname oder die IP-Adresse des SMTP-Servers angegeben, über den E-Mails versendet werden sollen.
  • SmtpPort: Dieser Wert gibt den Port an, der für die SMTP-Kommunikation verwendet wird.
  • UserId (Optional): Hier wird der Benutzername oder die Benutzerkennung für den SMTP-Server angegeben. Diese Anmeldeinformationen ermöglichen die Authentifizierung beim Versenden von E-Mails.
  • Password (Optional): Dieses Feld enthält das Passwort, das zur Anmeldung am SMTP-Server verwendet wird. Es dient der Sicherung der Authentifizierungsinformationen.
  • SslEnabled (Standardmässig false): Hier wird festgelegt, ob eine verschlüsselte SSL/TLS-Verbindung für die Kommunikation mit dem SMTP-Server verwendet werden soll. Ein Wert von "true" bedeutet, dass SSL/TLS aktiviert ist, während "false" darauf hinweist, dass keine Verschlüsselung verwendet wird.
  • EMailFrom: Legt die Absender-E-Mail-Adresse fest, mit der das E-Mail versendet wird.

General

"General": {
  "JobTimeoutsInSeconds": {
    "DeepSignJob": [TimeInSec (default = 900)],
    "EvidenceJob": [TimeInSec (default = 0 (OFF))],
    "SignLiveJob": [TimeInSec (default = 0 (OFF))],
    "SwissSignJob": [TimeInSec (default = 900)],
    "SignFinalizerJob": [TimeInSec (default = 15)],
    "SignCleanupJob": [TimeInSec (default = 30)],
    "DbUnlockerJob": [TimeInSec (default = 30)],
    "EmailSenderJob": [TimeInSec (default = 30)]
  },
  "BaseUrl": "[Base-URL]"
},

JobTimeoutsInSeconds

Der Service besteht aus Jobs, die im Hintergrund laufen. Hier kann die Sleep-Zeit dieser verschiedenen Services eingestellt werden. Diese Konfiguration ist optional. Wenn der Wert 0 eingetragen wird, ist der Job deaktiviert.

BaseUrl

Setzt die Base-URL des Services. Die URL muss inklusive Protokoll und Port angegeben werden, jedoch ohne den Mandanten. Bsp.: https://docusign.cmicloud.ch


Tenants

{
  "Tenants": {
    "[Tenant-Key]": {
      "ApiBaseUrl": "[PROTOKOLL]://[DOMAIN]:[OWIN-PRIVATE-PORT]",
      "Security": {
        "CmiStsUri": "[STS-URL]",
        "Client_secret": "[STS-CLIENT-SECRET]",
        "Client_id": "[STS-CLIENT-ID]",
      },
      "DeepSignConfiguration": {
        "CompanyId": "[Company ID]",
        "Username": "[Username]",
        "Password": "[Password]",
        "BrokerUrl": "[Broker Url]",
        "DeepSignUrl": "[DeepSign Url]"
      },
      "EvidenceConfiguration": {
        "BaseUrl": "[Base Url]",
        "ApiKey": "[Api Key]"
      },
      "SignLiveConfiguration": {
        "BaseUrl": "[Base Url]"
      },
      "SwissSignConfiguration": {
        "OrganizationId": "[Organization ID]",
        "WorkflowId": "[Workflow ID]",
        "RoomId": "[Room ID]",
        "BaseUrl": "[Base URL (incl. /api/v3)]",
        "Username": "[Username]",
        "Password": "[Password",
        "CertificatePath": "[Path]",
        "CertificateSecret": "[Secret]"
      },
      "EmailConfiguration": {
        // wie globale Konfiguration
      }
    }
  }
}

In der "Tenants"-Konfiguration werden einzelne Mandanten als eigenständige JSON-Objekte innerhalb des "Tenants"-Objekts definiert. Der Schlüssel des jeweiligen Objekts entspricht dabei dem Namen des Mandanten.

Hier ist ein Beispiel mit den Mandanten prod und test:

"Tenants": {
  "prod": {
    ...
  },
  "test": {
    ...
  }
}

ApiBaseUrl

Url zur Metatool API. Die Url muss auf dem Owin-Privateport gerichtet sein. Beispiel: https://mandant.cmicloud.ch:10004

Security

Hier wird der STS konfiguriert. Dieser ist notwendig, damit die API mit dem CMI Server Service kommunizieren kann.

[Hier]](./Konfiguration-STS-3.md) ist die Minimalkonfiguration vom STS beschrieben.

CmiStsUri

Url zum STS. URL muss inkl. Mandant angegeben werden und mit /identity enden. Beispiel.: https://sts3.cloud.ch/<MANDANT>/identity

Client_id

Die Client ID welche für die Web-API verwendet wird. Details, u.a. welche Grant-Types unterstützt werden müssen, und eine Beispielkonfiguration sind hier zu finden.

Client_secret

Client Secret welches beim STS konfiguriert ist. Das Client Secret muss in Plaintext eingetragen sein.

DeepSignConfiguration

{
  "DeepSignConfiguration": {
    "CompanyId": "[Company ID]",
    "Username": "[Username]",
    "Password": "[Password]",
    "BrokerUrl": "[Broker Url]",
    "DeepSignUrl": "[DeepSign Url]"
  }
}

In diesem Abschnitt befinden sich die Einstellungen für den Signaturprovider "DeepSign".

CompanyId

Das ist die Company-ID von DeepSign. Diese wird von DeepSign zur Verfügung gestellt.

Username, Password

Es muss erstmalig ein Serviceuser in DeepBox erstellt werden (https://admin.deepbox.swiss/organization//users/#service). Die Anmeldedaten müssen dann hier unter Username und Password eingetragen werden.

DeepSignUrl

DeepSign ist eine Cloud-Lösung. Aktuell kann die URL https://api.sign.deepbox.swiss verwendet werden.

BrokerUrl

DeepSign ist eine Cloud-Lösung. Aktuell kann die URL https://deepcloud.swiss verwendet werden.

EvidenceConfiguration

{
  "EvidenceConfiguration": {
    "BaseUrl": "[Base Url]",
    "ApiKey": "[Api Key]"
  }
}

In diesem Abschnitt befinden sich die Einstellungen für den Signaturprovider "Evidence".

BaseUrl

API Base-URL zur V2-API von Evidence. Bsp.: https://esignature-solution.evidence.ch/wegaservice/v2/.

ApiKey

API-Key für die Evidence-API.

SignLiveConfiguration

{
  "SignLiveConfiguration": {
    "BaseUrl": "[Base Url]"
  }
}

In diesem Abschnitt befinden sich die Einstellungen für den Signaturprovider "SignLive".

BaseUrl

API Base-URL zur API von SignLive. Bsp.: https://cloudsuite.intarsys.de/cloudsuite-gears/core.

SwissSignConfiguration

{
  "SwissSignConfiguration": {
    "OrganizationId": "[Organization ID]",
    "WorkflowId": "[Workflow ID]",
    "RoomId": "[Room ID]",
    "BaseUrl": "[Base URL (incl. /api/v3)]",
    "Username": "[Username]",
    "Password": "[Password",
    "CertificatePath": "[Path]",
    "CertificateSecret": "[Secret]"
  }
}

In diesem Abschnitt befinden sich die Einstellungen für den Signaturprovider "SwissSign". Alle Parameter werden von SwissSign zur Verfügung gestellt.

OrganizationId

Die zu verwendende Organization-ID.

WorkflowId

Die zu verwendende Workflow-ID.

RoomId

Die zu verwendende Room-ID.

Username, Password

Die zu verwendenden Anmelde-Daten (Benutzername und Passwort).

BaseUrl

Die URL zur SwissSign-API inkl. /api/v3. Bsp.: https://swisssign.ch/api/v3

CertificatePath

Pfad zum PFX-Zertifikat. Diese Einstellung wird nur benötigt, wenn es für die Kommunikation mit der SwissSign-Schnittstelle ein Client-Zertifikat benötigt.

CertificateSecret

Password vom PFX-Zertifikat. Diese Einstellung wird nur benötigt, wenn es für die Kommunikation mit der SwissSign-Schnittstelle ein Client-Zertifikat benötigt.

EmailConfiguration

Optional können E-Mail-Server-Einstellungen pro Mandant festgelegt werden. Werden keine E-Mail-Server-Einstellungen auf Mandanten-Ebene festgelegt, wird die globale Konfiguration für den Mandanten verwendet.