Änderungen von Dokument Digitale Mitgliederverwaltung
Zuletzt geändert von Daniel Herrmann am 2026/02/22 21:17
Von Version
15.1
bearbeitet von Daniel Herrmann
am 2025/08/16 19:55
am 2025/08/16 19:55
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version
13.1
bearbeitet von Daniel Herrmann
am 2025/08/16 09:32
am 2025/08/16 09:32
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -443,52 +443,6 @@ 443 443 444 444 Aus diesem Grund nutzen wir einen speziellen QR Code in einem für den Makerspace spezifischen Format, welches nachstehend detailliert beschrieben wird. 445 445 446 -{{code language="json"}} 447 -{ 448 - "payload": { 449 - "timestamp": "YYYY-MM-DDTHH:mm:ss", 450 - "correspondent": "Daniel Herrmann (#250)", 451 - "type": "mksp-doc-sepamandat", 452 - "tags": [ 453 - "tag1", 454 - "tag2" 455 - ], 456 -"storage_path": "Mitgliederverwaltung" 457 - }, 458 - "sig": "signature over the entire payload block" 459 -} 460 -{{/code}} 461 - 462 -Die beiden Einträge **payload** und **sig** sind **Pflichtfelder**. Innerhalb der Payload muss der **timestamp** **vorhanden** sein, alle anderen Felder sind optional, jedoch muss mindestens eins angegeben werden. Der QR Code kann dann - insbesondere bei der Digitalen Unterschrift oder bei Workflows, wo die Formulare ohnehin on demand erzeugt werden bereits mit allen Daten bestückt werden. In Paperless gibt es dann ein Postconsume Script, welches den QR Code ausliest, die Signatur prüft und - falls die Signatur korrekt ist - automatisch die Meta-Daten übernimmt. 463 - 464 -=== {{id name="DigitaleMitgliederverwaltung-Signatur"/}}Signatur === 465 - 466 -Die Signatur wird kryptographisch mit Hilfe asymmetrischen Verschlüsselung erzeugt. Wir erzeugen ein RSA 2048 Key Pair. Der öffentliche Schlüssel steht Paperless zur Verfügung, sodass Paperless die Signaturen verifizieren kann. Der private Teil des Schlüssels wird von den Makerspace-Systemem verwendet, welche die Formulare erzeugen. Im Detail: 467 - 468 -* **Key-Pair**: 2048 bit Schlüssellänge, RSA, 65537 Exponent 469 -* **Signatur**: SHA256 Signatur, PKCS1v15 Padding 470 -* ((( 471 -**Payload**: Als Payload wird nur der Inhalt der Payload verwendet, als **JSON String ohne Whitespaces, byte encoded in UTF-8.** Das oben genannte Beispiel würde die Signatur über den folgenden String erstellen: 472 -\\ 473 - 474 -{{code language="json"}} 475 -{"payload":{"correspondent":"Daniel Herrmann (#250)","type":"SEPA Mandat","tags":["tag1","tag2"]},"timestamp":"YYYY-MM-DDTHH:mm:ss","sig":"this-would-be-the-signature-appended-to-the-data"} 476 -{{/code}} 477 - 478 - 479 -Als Referenz, die in Python wäre der Input der Signatur: 480 -\\ 481 - 482 -{{code language="python"}} 483 -import json 484 - 485 -input_data = {'payload': {'correspondent': 'Daniel Herrmann (#250)', 'type': 'SEPA Mandat', 'tags': ['tag1', 'tag2']}, 'timestamp': 'YYYY-MM-DDTHH:mm:ss', 'sig': 'this-would-be-the-signature-appended-to-the-data'} 486 -signature_data = json.dumps(input_data, separators=(',', ':')).encode('utf-8') 487 -{{/code}} 488 -))) 489 - 490 -\\ 491 - 492 492 == {{id name="DigitaleMitgliederverwaltung-TechnischesSetup"/}}Technisches Setup == 493 493 494 494 Owner: zwei Owner
- Confluence.Code.ConfluencePageClass[0]
-
- Id
-
... ... @@ -1,1 +1,1 @@ 1 -20286686 81 +202866865 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://wiki.makerspace-darmstadt.de/spaces/PROJ/pages/20286686 8/Digitale Mitgliederverwaltung1 +https://wiki.makerspace-darmstadt.de/spaces/PROJ/pages/202866865/Digitale Mitgliederverwaltung