network: use the OpenConnect authentication dialog - #3395
Draft
schmidma wants to merge 3 commits into
Draft
Conversation
Return complete one-shot OpenConnect credentials without reusing delivered GlobalProtect cookies or logging authentication output. Keep Fortinet password authentication separate from SAML, honor strict PKI, and preserve complete profile settings during secret-agent flag updates. Scope stored-secret reads and normalize legacy IPv6 values before Update2.
Use the trusted NetworkManager OpenConnect dialog for eligible AnyConnect and default-protocol profiles through the shared SecretAgent path. Bound requests and attempts to each activation, cancel stale work, and persist allowlisted authentication preferences only after success without overwriting concurrent profile edits.
Exercise synthetic VPN activation, stored secrets, metadata persistence, and Fortinet coexistence against opt-in private NetworkManager instances. Require isolated user, mount, network, and PID namespaces with private buses and masked plugin registries. Keep version logging portable and the harness shellcheck-clean.
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.
Description
NetworkManager's OpenConnect plugin needs more than a generic username and password for many AnyConnect connections. Authentication can involve multiple forms, and the plugin expects an authentication cookie together with gateway, certificate, and resolution metadata.
Use the standard
nm-openconnect-auth-dialogfor eligible AnyConnect password profiles. This gives DMS and externalnmcliactivations the same authentication path and uses the helper's existing Secret Service integration for saved passwords.DMS prepares profiles with NetworkManager's not-saved flags before activation. Runtime cookies and gateway handoff values remain ephemeral. Safe helper preferences are written back only after the matching VPN activation succeeds, using a version-guarded full-profile update that preserves unrelated settings and stored secrets.
Authentication attempts are scoped to the active NetworkManager connection. Concurrent requests share one helper, while cancellation,
REQUEST_NEW, disconnects, timeouts, and stale signals cannot reuse or persist an old result.Existing behavior remains in place for:
The shared OpenConnect path also preserves
RESOLVEhandoff data, avoids stale legacy cookie reuse, and prevents GlobalProtect authentication output from exposing cookies in logs.Profiles missing the required transient-secret flags can be prepared by connecting once through DMS before using external activation tools.
Type of change
Related issues
None.
Screenshots / video
Not included. Authentication uses the standard OpenConnect dialog provided by the installed NetworkManager plugin.
Checklist
I18n.tr()with translator context, reusing existing terms where possiblemake fmt, added/updated tests,make testpasses, andgo mod tidyis cleanmake lint-qmlwith no new warningsAdditional validation included race tests for the NetworkManager and BlueZ packages, an isolated NetworkManager integration harness with private buses and namespaces, and a live AnyConnect connection and keyring-backed reconnect through
nmcli.