Unterschriften (kc:signature)¶
Ein Unterschriftsfeld hält fest, wer ein Formular wann unterzeichnet hat. Es gibt zwei Ausprägungen:
- Klick-Bestätigung (Standard) — der Anwender bestätigt per Klick; im Datensatz landen Name, Zeitstempel und – sofern geschützte Felder konfiguriert sind – ein Integritäts-Snapshot (HMAC). Es wird kein Bild erfasst.
- Handschriftliche Unterschrift (opt-in) — zusätzlich wird ein gezeichnetes Unterschriftsbild erfasst (Maus, Finger oder Stift). Das Bild erscheint im Feld und im PDF-Ausdruck.
Persönliche Unterschrift hinterlegen¶
Jeder Anwender kann einmalig eine Unterschrift hinterlegen, die dann bei Unterschriftsfeldern angeboten wird:
Profil-Menü → Persönliche Einstellungen → Tab „Signatur"
Dort mit Maus, Finger oder Stift unterschreiben und Übernehmen. Die Unterschrift wird pro Benutzer gespeichert (Server, geräteübergreifend) und lässt sich jederzeit neu zeichnen oder entfernen.
Wo wird das gespeichert?
Die persönliche Unterschrift liegt als PNG (Base64) am Benutzerkonto
(USERS.signature_image), getrennt von den übrigen UI-Einstellungen.
Sie ist eine Vorlage – beim Unterschreiben eines konkreten Formulars
wird eine Kopie in den Formulardatensatz eingebettet (Snapshot), damit
die einmal geleistete Unterschrift unveränderlich bleibt.
Handschriftliche Unterschrift für ein Feld aktivieren¶
Im Formular-Editor das Unterschriftsfeld auswählen → Eigenschaften → Abschnitt „Unterschrift (kc:signature)" → Häkchen „Handschriftliche Unterschrift (Bild)".
Beim Unterschreiben bietet das Feld dann an:
- die im Profil hinterlegte Unterschrift per Klick zu übernehmen, oder
- direkt zu zeichnen (falls keine hinterlegt ist oder einmalig eine andere gewünscht wird).
Ohne Häkchen bleibt es bei der bisherigen Klick-Bestätigung – bestehende Formulare ändern ihr Verhalten nicht.
Im PDF¶
Im Ausdruck steht ein Unterschriftsfeld dort, wo es auch in der Maske steht — neben seinen Nachbarfeldern, in der Breite, die du ihm gegeben hast:

| Zustand | Im PDF |
|---|---|
| unterzeichnet, mit Bild | das Bild mittig, darunter Name und Zeitpunkt |
| unterzeichnet, ohne Bild | nur Name und Zeitpunkt |
| noch nicht unterzeichnet | leerer Kasten mit Unterschriftslinie — das Blatt lässt sich auch von Hand unterschreiben |
Die Farbe des Rahmens zeigt den Stand der Prüfung wie in der Maske: grün (in Ordnung), gelb (Felder seit der Unterzeichnung verändert), rot (Signatur ungültig), grau (ohne Integritätsschutz). Der Fingerprint steht in der kleinen Zeile unter dem Namen.
Ein langer Name bricht in die nächste Zeile um, und der Kasten wird dafür höher; die Felder daneben behalten ihren Platz. Auf zwei Seiten verteilt wird ein Unterschriftsfeld nie.
Breite wie in der Maske einstellen
Soll die Unterschrift über die ganze Zeile gehen, stelle im Feld die Spaltenbreite auf „volle Breite" — das wirkt in der Maske und im Ausdruck gleich. Zwei Unterschriften nebeneinander bekommst du, indem du sie in einem zweispaltigen Formular hintereinander anlegst.
Die Uhrzeit steht in der Zeitzone, die unter System-Einstellungen → Zeitzone eingestellt ist.
Geändert: Bis Oktober 2026 nahm die Unterschrift im Ausdruck immer die volle Breite
Sie stand dafür in einer eigenen Zeile, auch wenn sie in der Maske neben einem anderen Feld saß. Ausdrucke bestehender Formulare können deshalb jetzt kompakter ausfallen. Formulare im Absolut-Layout (Druck mit festen Positionen) sind davon nicht betroffen.
Datenmodell¶
Der Feldwert ist ein JSON-Objekt im DB-Feld. Mit handschriftlicher Unterschrift
kommt ein image-Schlüssel hinzu (Data-URL):
{
"signed": true,
"signedAt": "2026-08-14T14:30:00Z",
"userName": "Oliver Kehrmann",
"image": "data:image/png;base64,iVBORw0KGgo…",
"dataHash": "…", "dataHashAlgo": "HMAC-SHA256-v1"
}
Die Signatur-Spalte ist als großer Texttyp angelegt (LONGTEXT / text /
CLOB / NVARCHAR(MAX)), sodass das eingebettete Bild problemlos passt.
Integritätsschutz¶
Welche Felder eine Unterschrift absichert, legst du am Unterschriftsfeld fest
(geschützte Felder). KCForms bildet daraus beim Unterschreiben einen
HMAC-Fingerabdruck (dataHash). Ändert sich später einer der geschützten
Werte, zeigt das Formular die Unterschrift als nicht mehr gültig an.
Den geheimen Schlüssel (HMAC-SHA256) verwaltest du unter
System-Administration → Betrieb & Überwachung → Signatur-Sicherung. Er
liegt in der Tabelle app_settings. Die Seite bietet Schlüssel anzeigen
(für DB-Umzug), Neuen Schlüssel erzeugen und Schlüssel importieren
(nach Umzug).
Beim Umzug mitnehmen
Zieht KCForms auf eine neue Datenbank um, muss der Schlüssel mit — sonst werden alle bestehenden Unterschriften als manipuliert gemeldet. Ein neuer Schlüssel hat dieselbe Wirkung; nur bewusst erzeugen.