Ich habe den Anmeldevorgang für meine Anwendung mit Playwright erfolgreich automatisiert. Die App erfordert MFA (TOTP). Ich verwende derzeit die otpauth-Bibliothek, um die 6-stelligen Token zu generieren, und sie funktioniert perfekt in meiner lokalen Umgebung.
Mein aktuelles Setup:
* Logik: Ich habe eine Dienstprogrammfunktion, die otpauth.TOTP verwendet, um Codes aus einem geheimen Schlüssel zu generieren.
* Lokaler Speicher: Meine Anmeldeinformationen (APP_USER, APP_PASS) und M365_OTP_SECRET sind in einer lokalen .env-Datei gespeichert.
* Ausführung: Ich verwende ein global-setup.js, um die Anmeldung einmal zu verwalten und den Speicherstatus zu speichern.
Das Problem:
Ich verschiebe dies jetzt in eine CI/CD-Pipeline (GitHub Actions/Jenkins). Ich möchte sicherstellen, dass:
* Keine Anmeldeinformationen im Repo: Ich möchte meinen .env-Ordner nicht festschreiben oder irgendwelche Geheimnisse im Repository fest codieren.
* Umgebungssynchronisierung: Ich mache mir Sorgen über TOTP-Timing-Probleme oder „verdächtige Anmeldung“-Flags, wenn ich Headless in der Cloud im Vergleich zu meinem lokalen Headed-Browser ausführe.
* Sitzungswiederverwendung: Ich möchte vermeiden, bei jedem Testlauf MFA auszulösen, um dies zu verhindern Ratenbegrenzung.
Fragen an die Community:
* Secret Injection: Was ist die beste Vorgehensweise für die Übergabe des TOTP-Geheimschlüssels an die Playwright-Laufzeit? Ist die Zuordnung als Umgebungsvariablen im CI-Tool (z. B. GitHub Secrets) der sicherste Weg?
* Statusverwaltung: Wo soll in CI die auth.json (storageState) gespeichert werden? Sollte es bei jedem Pipeline-Lauf neu generiert oder als Artefakt zwischengespeichert werden?
* Bypass vs. Automatisieren: Ist es besser, den TOTP-Eintrag wie bisher weiter zu automatisieren, oder sollte ich nach „Nur-Test“-Hintertüren suchen oder MFA für bestimmte CI-IP-Bereiche umgehen?
Umgebung:
* Playwright-Version: [Geben Sie Ihre Version ein, z. B. 1.40]
* CI-Tool: [z. B. GitHub Actions]
* MFA-Bibliothek: otpauth
Pro-Tipp für Ihren Beitrag:
Wenn Sie dies posten, fügen Sie den Codeausschnitt aus Ihrem Screenshot ein (die Funktion „generateTOTP“), aber entfernen Sie die Zeile, in der Sie || haben 'YOUR_SECRET_HERE'. Dies zeigt der Community, dass Sie bereits über Sicherheit nachdenken, indem Sie sich nur auf process.env verlassen.
Wie kann TOTP MFA in CI/CD sicher automatisiert werden, ohne Anmeldeinformationen preiszugeben? ⇐ JavaScript
-
- Similar Topics
- Replies
- Views
- Last post
Mobile version