ENG-07 (Connect): Drittsystem-Zugangsdaten ueber Core-Tenant-KEK-Hierarchie #313

Closed
patrick wants to merge 0 commits from feature/eng-07-drittsystem-zugangsdaten-ber-core-tenant-kek-hierarchie-verschl-sseln into main
pull from: feature/eng-07-drittsystem-zugangsdaten-ber-core-tenant-kek-hierarchie-verschl-sseln
Owner

Drittsystem-Zugangsdaten (OAuth-Tokens, API-Keys) werden ueber den Tenant-KEK aus der Core-Schluesselhierarchie (API-10) verschluesselt statt ueber ein separates Schema -- analog DMS IAM-19.

Umsetzung: connect/internal/crypto/kekprovider.go (HTTPKEKProvider, spiegelt dms/archive-Muster), Integrationstest ueber echte HTTP-KEK-Kette gegen echte Postgres-Testdatenbank.

Durchgefuehrte Pruefungen:

  1. Direkter Lesezugriff auf Zugangsdaten-Tabelle liefert nur Chiffrat -- BESTANDEN
  2. Regressionstest Connector-Verbindungsaufbau (ERP/DATEV/M365/DMS2), vollstaendiger go test ./... -- BESTANDEN, 0 FAIL
  3. Falscher Tenant-KEK verweigert Entschluesselung -- BESTANDEN

Kein Merge, kein Deploy -- zur Pruefung bereit.

🤖 Generated with Claude Code

Drittsystem-Zugangsdaten (OAuth-Tokens, API-Keys) werden ueber den Tenant-KEK aus der Core-Schluesselhierarchie (API-10) verschluesselt statt ueber ein separates Schema -- analog DMS IAM-19. **Umsetzung:** `connect/internal/crypto/kekprovider.go` (HTTPKEKProvider, spiegelt dms/archive-Muster), Integrationstest ueber echte HTTP-KEK-Kette gegen echte Postgres-Testdatenbank. **Durchgefuehrte Pruefungen:** 1. Direkter Lesezugriff auf Zugangsdaten-Tabelle liefert nur Chiffrat -- BESTANDEN 2. Regressionstest Connector-Verbindungsaufbau (ERP/DATEV/M365/DMS2), vollstaendiger go test ./... -- BESTANDEN, 0 FAIL 3. Falscher Tenant-KEK verweigert Entschluesselung -- BESTANDEN Kein Merge, kein Deploy -- zur Pruefung bereit. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick added 1 commit 2026-10-16 15:14:16 +02:00
ENG-07: drittsystem-zugangsdaten-ber-core-tenant-kek-hierarchie-verschl-sseln
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
8de26cd624
connect/internal/crypto bot bereits Envelope-Encryption mit austauschbarem
KEKProvider-Interface (ENG-02), aber keine konkrete Implementierung, die den
Tenant-KEK tatsaechlich ueber Core API-10 bezieht -- ohne sie haette jede
kuenftige Verdrahtung (M365-01, API-01) frei entscheiden koennen, woher der
KEK kommt. Neuer HTTPKEKProvider (connect/internal/crypto/kekprovider.go)
spiegelt denselben Vertrag wie dms/internal/crypto.HTTPKEKProvider und
archive/internal/kekclient.HTTPProvider (X-Nexarch-Client-Id/-Secret-Header,
tenant-Query-Parameter, JSON-Feldname tenant_kek_base64) -- einzige
sanktionierte KEKProvider-Implementierung fuer Connect statt eines zweiten,
eigenen Schluesselpfads.

Integrationstest in connect/internal/credential/corekek_test.go verdrahtet
credential.Store ueber diese Kette (statt des bisherigen reinen
In-Memory-Fakes) gegen die echte Postgres-Testdatenbank: Zugangsdaten
landen nachweislich nur als Chiffrat in der DB, Entschluesselung mit
abweichendem Tenant-KEK scheitert. Bestehende Connector-Pakete (ERP, CRM,
DATEV, M365, DMS2) unveraendert, komplette Testsuite weiterhin gruen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Author
Owner

Inhalt bereits in main enthalten (geprueft per merge_all_prs.sh: leerer Merge-Diff). Geschlossen ohne Merge.

Inhalt bereits in main enthalten (geprueft per merge_all_prs.sh: leerer Merge-Diff). Geschlossen ohne Merge.
patrick closed this pull request 2026-10-19 12:29:45 +02:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: scripte/nexarch#313