Add read-only STRATO DNS MCP prototype
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# STRATO-DNS-MCP – Read-only-Prototyp
|
||||
|
||||
Dieser Prototyp prüft den undokumentierten HTTP-Leseweg des STRATO-
|
||||
Kundenbereichs. Er kann sich anmelden und die CNAME-Einträge genau einer
|
||||
konfigurierten DNS-Zone auflisten.
|
||||
|
||||
**Diese Version kann keine DNS-Einträge erstellen, ändern oder löschen.** Im
|
||||
Quellcode existiert absichtlich keine Speichermethode.
|
||||
|
||||
## Technische Grundlage
|
||||
|
||||
STRATO dokumentiert für normale Hosting-Domains nur die Verwaltung im
|
||||
Kunden-Login. Der öffentliche Certbot-Plugin
|
||||
[`FlixMa/certbot-dns-strato`](https://github.com/FlixMa/certbot-dns-strato)
|
||||
zeigt jedoch einen funktionsfähigen HTTP-Ablauf über
|
||||
`https://www.strato.de/apps/CustomerService`. Der hier verwendete Leseweg wurde
|
||||
ohne Certbot-Abhängigkeit neu und deutlich defensiver implementiert.
|
||||
|
||||
Referenzstand der Untersuchung:
|
||||
`FlixMa/certbot-dns-strato@67df6dcfc3ef0035ec5aa5daf7c5b0bd8310d7fb`.
|
||||
|
||||
## Lokaler Test – noch nicht produktiv installieren
|
||||
|
||||
1. `strato.env.example` außerhalb von Git nach `strato.env` kopieren.
|
||||
2. Dort Benutzername, Passwort und DNS-Zone eintragen.
|
||||
3. Falls STRATO TOTP verlangt, zusätzlich TOTP-Secret und den bei STRATO
|
||||
angezeigten Gerätenamen eintragen.
|
||||
4. Image bauen und zunächst ausschließlich `strato_connection_status` sowie
|
||||
`strato_list_cnames` testen.
|
||||
|
||||
Das Docker-Image wird direkt aus diesem Repository gebaut:
|
||||
|
||||
```sh
|
||||
docker build -t strato-dns-mcp:readonly .
|
||||
```
|
||||
|
||||
Die Offline-Tests benötigen keine Zugangsdaten und kontaktieren STRATO nicht:
|
||||
|
||||
```sh
|
||||
python3 -m unittest -v tests/test_strato_readonly.py
|
||||
```
|
||||
|
||||
Zugangsdaten, TOTP-Werte, Cookies und STRATO-Session-ID werden weder geloggt
|
||||
noch als Toolausgabe zurückgegeben. Fehlermeldungen enthalten nur eine kurze
|
||||
Fehlerklasse.
|
||||
|
||||
## Noch bewusst nicht enthalten
|
||||
|
||||
- kein Compose-Deployment
|
||||
- keine Unraid-XML
|
||||
- keine Hermes-Registrierung
|
||||
- keine schreibenden Werkzeuge
|
||||
- keine produktive Installation
|
||||
|
||||
Diese Teile kommen erst, wenn der Read-only-Test gegen das aktuelle STRATO-
|
||||
Konto funktioniert. Falls sich der Login oder das HTML geändert hat, wird nur
|
||||
der Parser angepasst; es findet kein Schreibversuch statt.
|
||||
Reference in New Issue
Block a user