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)],
    "XiTrustJob": [TimeInSec (default = 60)],
    "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]"
      },
      "XiTrustConfiguration": {
        "BaseUrl": "[BaseUrl incl. v2/esignatur]",
        "Username": "[Username]",
        "Password": "[Password]",
        "ProxyKey": {
          "Header": "[Header Key]",
          "Value": "[Header Value]"
        }
      },
      "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.

XiTrustConfiguration

{
  "XiTrustConfiguration": {
    "ApiBaseUrl": "[ApiBaseUrl incl. v2/esignatur]",
    "SignUrl": "[SignUrl incl. ui/protected]",
    "Username": "[Username]",
    "Password": "[Password]",
    "ProxyKey": {
      "Header": "[Header Key]",
      "Value": "[Header Value]"
    }
  }
}

ApiBaseUrl

Die URL zur XiTrust-API inkl. /v2/esignatur.

SignUrl

Die URL zur XiTrust Webapplikation inkl. ui/protected. Wird verwendet, um den Benutzer direkt zum erstellten Signaturauftrag weiterzuleiten. Wenn die Url nicht gesetzt ist, erfolgt keine Weiterleitung.

Username

Der für die Authentifizierung zu verwendende Username.

Password

Das für die Authentifizierung zu verwendende Passwort.

ProxyKey

Der optionale ProxyKey dient zur Anmeldung an Proxy-Servern. Erw ird bei allen Anfragen als zusätzlicher Header mitgesendet.

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.