Files
bf-infra/docs/tp49-cf-access-startauftrag.md
Christoph Emsenhuber 4b307315f0 TP49 widerlegt und geschlossen — kein Fix, Doku korrigiert
Christoph hat die Praemisse am 2026-10-06 selbst widerlegt: testus@emsenhuber.com
wird von CF Access abgelehnt. Die E-Mail-Bindung der Policy gilt, login_method
hebelt sie nicht aus. Es gab nie eine offene Tuer.

Der Fehler war ein Fehlschluss, kein Raten: Doku-Semantik zu login_method
("welche Methode wurde benutzt") wurde so gelesen, als ersetze der Include die
danebenstehende email-Zeile. include ist ein OR — die Zeilen sind Alternativen,
nicht Bedingungen. Aus "GitHub ist eine Alternative zur E-Mail" wurde "GitHub
allein genuegt", und das stand als Tatsache in der Akte (Fund 2026-07-10).

Belegt: kein IdP traegt eine Domain-Bindung (github/google/onetimepin alle nur
client_id + redirect_url, live per GET .../identity_providers). Die Einschraenkung
kann also nur aus der Policy kommen — und sie greift nachweislich.

Grenze der Aussage: der GitHub-Pfad selbst wurde nicht gemessen, nur geschlossen.

Korrigiert: teilprojekte.md TP49 (Herkunft des Fehlers mitgenannt), cf-tunnel-
mapping.md Paragraf 10 (Ursprungsfund widerlegt, nicht geloescht), Startauftrag
als "NICHT AUSFUEHREN" markiert. Kein Schreibzugriff auf die Terpenfinder-Policy;
blauebluethen-Projektgrenze gewahrt.

Erhalten bleiben nur die Gotchas: 32-Hex-App-IDs, cloudflare-MCP ist read-only
(Write-Probe no-op-PUT -> 1010), Reusable Policy nur per App-PUT detachbar.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-06 07:37:46 +02:00

3.1 KiB

Startauftrag — TP49: CF-Access login_method-Include entfernen ❌ NICHT AUSFÜHREN — gegenstandslos

Geschlossen am 2026-10-06. Gitea #76, Prosa in docs/teilprojekte.md → ### TP49.

🔴 Dieser Auftrag ist ungültig. Er basiert auf einer falschen Prämisse, die am 2026-10-06 widerlegt wurde. Nicht ausführen. Die Datei bleibt als Beleg stehen, damit die Prämisse nicht in einer künftigen Session wieder als Auftrag auftaucht.

Warum gegenstandslos

Der Auftrag verlangte, login_method:github aus der Policy christoph der App 420.teilzeitladen.xyz zu entfernen, weil „ein beliebiger GitHub-Account" hineinkäme.

Das ist falsch. Christoph hat am 2026-10-06 mit testus@emsenhuber.com getestet: die Adresse wurde abgelehnt. Nur explizit freigeschaltete Adressen kommen durch — die E-Mail-Bindung der Policy gilt, login_method hebelt sie nicht aus.

Wie der Fehler entstand

Die Doku-Aussage zu login_method („asks which identity service was used for authentication") wurde so gelesen, als ersetze der Include die danebenstehende email-Zeile. include ist ein OR — die Zeilen sind Alternativen, nicht Bedingungen. Aus „GitHub ist eine Alternative zur E-Mail" wurde fälschlich „GitHub allein genügt". Belegt war das nie; es stand trotzdem als Tatsache in Auftrag und Prosa-Abschnitt.

Belegte Gegenlage (live geprüft 2026-10-06)

IdP Typ config
72c1291b… github client_id, redirect_url — kein Domain-Filter
c7571880… google client_id, redirect_url — kein Domain-Filter
9024c7a6… onetimepin redirect_url

Kein IdP trägt eine Domain-/Tenant-Bindung (GET /accounts/{id}/access/identity_providers). Die Einschränkung kann also nur aus der Policy kommen — und sie greift nachweislich. Google ist auf GitHub übertragbar, weil beide IdPs konfigurationsgleich sind.

⚠️ Grenze: der GitHub-Pfad wurde nicht separat gemessen. Die Aussage ist „Google→GitHub geschlossen", nicht „GitHub getestet". Das ist der einzige Grund, den Eintrag nicht als bewiesen sauber zu führen — kein Grund für eine Änderung.

Ergebnis

Kein Schreibzugriff auf die Terpenfinder-Policy ist erfolgt. 420.teilzeitladen.xyz gehört zum Projekt blaueblüten; es wurde nichts angefasst.

Was aus diesem TP erhalten bleibt

Nur die Gotchas — sie sind unabhängig vom widerlegten Fund und live bestätigt:

  1. Access-App-IDs sind 32 Hex. Kurzform 16aaec78 → 12045 invalid_application_id.
  2. 🔴 Der cloudflare-MCP ist strikt read-only. Write-Probe 2026-10-06: no-op-PUT (byte-identischer Body) → 1010: undefined. Writes nur via CF_API_TOKEN/curl.
  3. Reusable Policy nur per App-PUT detachbar (policies:[{id,precedence}]), nicht per /policies-DELETE.

Lehre

Eine Sicherheitsaussage über fremde Infrastruktur braucht einen Test, nicht eine Ableitung. Der Befund stand fünf Tage (2026-07-10 → 2026-10-06) als „🔴 ABSOLUTE PRIORITÄT" in der Akte, gestützt allein auf einen Lese-Schluss. Der Test dauerte zwei Minuten.