Connecting to a SAML VPN on macOS Ventura When Cisco Secure Client Crashes
If Cisco Secure Client crashes at startup on an Intel MacBook Pro running macOS Ventura 13.7.8, OpenConnect with openconnect-saml and an installed Microsoft Edge browser may provide an alternative.
This approach bypasses the Cisco interface. It does not repair it, and compatibility depends on the VPN server’s authentication and security requirements.
Prerequisites
- Homebrew
- Python and pipx
- Microsoft Edge installed
- Your organization’s official VPN server address
- An account authorized to access that VPN
Follow your organization’s policy regarding third-party VPN clients.
1. Install pipx if needed
If Homebrew is already available:
brew install pipx
pipx ensurepath
Restart the terminal afterward.
2. Install OpenConnect
OpenConnect establishes the VPN tunnel:
brew install openconnect
Verify the installation:
openconnect --version
Homebrew may compile dependencies on older macOS versions. Wait for installation to finish before continuing.
3. Install the SAML authentication tool
pipx install "openconnect-saml[chrome]"
pipx install "openconnect-saml[chrome]==0.24.5"
This guide was tested with openconnect-saml 0.24.5.The command above installs the latest available
version, which may behave differently.
Verify that Playwright is installed in the same environment:
pipx runpip openconnect-saml show playwright
The version above pins the authentication tool to a specific release. Future releases may behave differently.
4. Use an installed browser
Downloading Playwright’s bundled Chromium can fail on Ventura with:
Playwright does not support chromium on mac13
The tool supports selecting an installed Microsoft Edge browser instead:
--browser chrome --chrome-channel msedge
This avoids downloading bundled Chromium and does not require the optional PyQt6 browser backend.
5. Connect
Replace vpn.example.org with the official VPN address provided by your organization:
openconnect-saml connect --server "vpn.example.org" --browser chrome --chrome-channel msedge
Run the command without adding sudo at the beginning.
Complete the authentication in the browser window, including MFA if required.
If the terminal subsequently requests a password through sudo, enter your local Mac administrator password. Nothing appears while typing a terminal password; this is expected.
Authentication success alone does not confirm that the VPN tunnel is connected. Check the subsequent terminal output and test access to an authorized internal resource.
6. Disconnect
Keep the terminal open while using the connection.
To disconnect, press:
Ctrl + C
Troubleshooting
sudo: openconnect: command not found
Check whether OpenConnect is installed:
command -v openconnect
brew list --versions openconnect
If it is missing:
brew install openconnect
If it is installed but sudo cannot find it, investigate the executable path rather than reinstalling repeatedly.
PyQt6 installation fails because Xcode is required
The Edge method above uses the Playwright browser backend. PyQt6 is not required for this method.
A pipx environment path does not exist
Inspect the actual paths:
pipx environment
Do not assume pipx uses the same directory on every system. Enclose paths containing spaces in quotes.
Homebrew displays a “Tier 3” warning
This describes Homebrew’s support level for the configuration. It does not, by itself, mean installation failed. Check for an explicit error and verify that openconnect --version works.
Connection command
After installation, reconnect using:
openconnect-saml connect --server "vpn.example.org" --browser chrome --chrome-channel msedge
Never share passwords, MFA codes, authentication cookies, or session tokens in screenshots or troubleshooting logs.
References: OpenConnect · openconnect-saml · Homebrew