Repository navigation
feat(settings): Mit Firmenkonto anmelden unter Einstellungen → Verbindung - #69
Merged
Merged
Conversation
added 3 commits
October 26, 2026 07:42
…dung Für die Adresse in „Server-URL“ fragt die App GET /api/v1/client/signin (core signin:methods, 500 ms entprellt, beim Öffnen der Einstellungen einmal). Bietet der Server die Anmeldung an (GateControl >= 1.201.0), erscheint unter der Server-Karte die Karte „Mit Firmenkonto anmelden“; ältere Server (404), keine Antwort oder eine Serversperre der Richtlinie: keine Karte. Die Karte nutzt nur vorhandene Bausteine (.card.set-card, .set-card-title, .set-card-desc, .field/.inp, .field-hint, .field-actions, .btn, .field-status): * „Mit Microsoft anmelden“ je Eintrag (Label des Servers dahinter), öffnet den Standardbrowser; „Abbrechen“ beendet das Warten * „E-Mail oder Benutzername“, „Passwort“, Hinweis des Servers, „Anmelden“ * bei totp_required erscheint „Bestätigungscode“ (6 Ziffern) * Fehlertexte aus dem core (Vertrag); Erfolg wie „Speichern & Registrieren“ mit einem Einrichtungscode („Gerät eingerichtet“) Einrichtungscode, Handoff und PKCE-Verifier bleiben im Main-Prozess (core); das Einlösen läuft über den bestehenden Setup-Code-Weg. Verlassen der Einstellungen bricht eine wartende Browser-Anmeldung ab. i18n ui.signin.* (de/en). E2E: Mock-Server mit signin-Endpunkten (support/signin-mock.js) und signin.spec.js (älterer Server, Passwort mit 2FA, Microsoft mit Loopback-Antwort und Handoff, fremder state, Abbrechen, nichts Geheimes in den Dateien der App). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016xX1efcZF1f6G9rhmaJNLD
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016xX1efcZF1f6G9rhmaJNLD
…eldung) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016xX1efcZF1f6G9rhmaJNLD
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Worum es geht
„Mit Firmenkonto anmelden“ in der Community-App: Ein Gerät lässt sich ohne Einrichtungscode vom Admin einrichten – mit dem Firmenkonto (Passwort / AD-LDAP oder „Mit Microsoft anmelden“). Logik, PKCE, Loopback-Empfänger und IPC kommen aus CallMeTechie/gatecontrol-client-core#61; hier ist nur die Oberfläche. Gleiches Verhalten wie in Pro (GateControl-Pro-Client#69), eingepasst in den Einrichtungsort der Community-App (Einstellungen → Verbindung).
Voraussetzung: client-core#61 zuerst mergen, danach
core.refhier auf den Merge-Commit von coremasterumpinnen (npm run core:bump). Aktuell zeigtcore.refauf den Branch-Stand von #61 (2b574c3), damit die CI schon gegen den neuen core läuft.Ablauf in der App
GET /api/v1/client/signin(coresignin:methods).totp_required„Bestätigungscode“ (6 Ziffern).password_change_required(„Du musst dein Passwort zuerst einmal im Browser ändern. Melde dich dafür im Portal an.“) unddirectory_unavailable(„Der Anmeldedienst deiner Firma ist gerade nicht erreichbar. …“), unbekannte Codes → allgemeiner Fehler.Design
Keine neuen Styles: nur vorhandene Bausteine der Einstellungen (
.card.set-card,.set-card-title,.set-card-desc,.field/.inp,.field-hint,.field-actions,.btn-pri/.btn-sec,.field-status).Sicherheit
Einrichtungscode, Handoff und Verifier verlassen den Main-Prozess nicht; das Passwort geht nur an
signin:passwordund wird nach Erfolg aus dem Feld gelöscht. Einlösen über den bestehenden Setup-Code-Weg (hostname, platform,X-Machine-Fingerprint). Fenster-Schutz und Bridge unverändert; der Browser öffnet sich über den http(s)-Filter vonshell:open-external.Tests
test/e2e/signin.spec.jsgegen den Mock-Server (neu:support/signin-mock.js, 404 ohnesetSignin()): älterer Server ohne Karte; Passwort falsch → Fehler, richtig → 2FA →/enrollmit genau dem ausgegebenen Code; Microsoft mit Start-URL, Loopback-Antwort, Handoff-Tausch mit PKCE-Prüfung im Mock, Abschlussseite, zweite Anfrage abgewiesen; fremder state → kein Handoff-Tausch; Abbrechen. Weder Passwort, Bestätigungscode, Handoff noch Einrichtungscode stehen im App-Log, in den Stores oder den Ereignissen.npm testgrün (Syntax 27 Dateien, 303 Tests); E2E unter Linux/xvfb grün:app,policy,signin,window-guard.Nicht geprüft: echter Lauf unter Windows mit Standardbrowser und echtem Entra-Login.
Generated by Claude Code