Score:0

How to install openconnect-sso on Ubuntu 21.04

ng flag

I would like to install openconnect-ssh. The install instructions from the project seem complex, I'm not sure what pipx is.

How do I install openconnect-sso on Ubuntu without using pipx and using native Ubuntu qt libraries?

I tried to install it using pip, but I got the following errors:

Traceback (most recent call last):
  File "/home/merlijn/.local/bin/openconnect-sso", line 5, in <module>
    from openconnect_sso.cli import main
  File "/home/merlijn/.local/lib/python3.9/site-packages/openconnect_sso/cli.py", line 10, in <module>
    from openconnect_sso import app, config, __version__
  File "/home/merlijn/.local/lib/python3.9/site-packages/openconnect_sso/app.py", line 16, in <module>
    from openconnect_sso.authenticator import Authenticator, AuthResponseError
  File "/home/merlijn/.local/lib/python3.9/site-packages/openconnect_sso/authenticator.py", line 6, in <module>
    from openconnect_sso.saml_authenticator import authenticate_in_browser
  File "/home/merlijn/.local/lib/python3.9/site-packages/openconnect_sso/saml_authenticator.py", line 3, in <module>
    from openconnect_sso.browser import Browser
  File "/home/merlijn/.local/lib/python3.9/site-packages/openconnect_sso/browser/__init__.py", line 1, in <module>
    from .browser import Browser, DisplayMode, Terminated
  File "/home/merlijn/.local/lib/python3.9/site-packages/openconnect_sso/browser/browser.py", line 5, in <module>
    from . import webengine_process as web
  File "/home/merlijn/.local/lib/python3.9/site-packages/openconnect_sso/browser/webengine_process.py", line 12, in <module>
    from PyQt5.QtCore import QUrl, QTimer
ModuleNotFoundError: No module named 'PyQt5'
Traceback (most recent call last):
  File "/home/merlijn/.local/bin/openconnect-sso", line 5, in <module>
    from openconnect_sso.cli import main
  File "/home/merlijn/.local/lib/python3.9/site-packages/openconnect_sso/cli.py", line 10, in <module>
    from openconnect_sso import app, config, __version__
  File "/home/merlijn/.local/lib/python3.9/site-packages/openconnect_sso/app.py", line 16, in <module>
    from openconnect_sso.authenticator import Authenticator, AuthResponseError
  File "/home/merlijn/.local/lib/python3.9/site-packages/openconnect_sso/authenticator.py", line 6, in <module>
    from openconnect_sso.saml_authenticator import authenticate_in_browser
  File "/home/merlijn/.local/lib/python3.9/site-packages/openconnect_sso/saml_authenticator.py", line 3, in <module>
    from openconnect_sso.browser import Browser
  File "/home/merlijn/.local/lib/python3.9/site-packages/openconnect_sso/browser/__init__.py", line 1, in <module>
    from .browser import Browser, DisplayMode, Terminated
  File "/home/merlijn/.local/lib/python3.9/site-packages/openconnect_sso/browser/browser.py", line 5, in <module>
    from . import webengine_process as web
  File "/home/merlijn/.local/lib/python3.9/site-packages/openconnect_sso/browser/webengine_process.py", line 14, in <module>
    from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineScript, QWebEngineProfile
ModuleNotFoundError: No module named 'PyQt5.QtWebEngineWidgets'
Score:2
cn flag

Here is an issue I opened linking to my installation instructions: https://github.com/vlaci/openconnect-sso/issues/114 <-- (upvote this with a thumbs up sign on GitHub if you agree and want to get it attention)

...which are here: How to use "openconnect" (via the openconnect-sso wrapper) with SAML and Duo two-factor authentication via Okta Single-Sign-on (SSO) <-- see here for full instructions, details, and screenshots.

In short, do this to install openconnect and openconnect-sso on Linux Ubuntu:

sudo apt update
sudo apt install vpnc-scripts openconnect   # install openconnect
sudo apt install python3

python3 -m pip install --upgrade pip
python3 -m pip install openconnect-sso      # install openconnect-sso

# install openconnect-sso dependencies, including forcing a reinstall of PyQt5

# uninstall
python3 -m pip uninstall PyQt5
python3 -m pip uninstall PyQt5-sip
python3 -m pip uninstall PyQtWebEngine
python3 -m pip uninstall keyring

# reinstall
python3 -m pip install PyQt5
python3 -m pip install PyQt5-sip
python3 -m pip install PyQtWebEngine
python3 -m pip install keyring

python3 -m pip install cffi

# Check the version
# My output is: `openconnect-sso 0.7.3`
openconnect-sso --version

Usage (note: for how to find your server address and SAML group, see "How to find your VPN server address and SAML group" at the bottom of my answer here):

VPN_SERVER_ADDRESS="myvpn.whatever.com"   # example server address to connect to
VPN_SAML_GROUP="whatever-saml-whatever"   # example SAML group name
VPN_USER="[email protected]"      # example username
# or perhaps just this for the username:
# VPN_USER="my.username"

# connect via `openconnect-sso`
# The first time ever, you must specify everything
openconnect-sso --server "${VPN_SERVER_ADDRESS}/${VPN_SAML_GROUP}" --user "${VPN_USER}"
# Subsequent connection attempts can be done with just this, since apparently
# the server address, SAML group, and username are cached after the first usage
openconnect-sso
Score:0
ng flag

First, you need to install the Qt5 Python dependencies:

sudo apt install python3-pyqt5 python3-pyqt5.qtwebengine

Then you install openconnect-sso using pip

pip install openconnect-sso

Afterwards, you can easily run the app:

$ openconnect-sso -s vpn.example.com --browser-display-mode shown
[info     ] Authenticating to VPN endpoint [openconnect_sso.app] address=vpn.example.com name=
[info     ] Response received              [openconnect_sso.authenticator] id=main message=Please complete the authentication process in the AnyConnect Login window. title=Login
[info     ] Browser started                [webengine] startup_info=StartupInfo(url='https://vpn.example.com/...', credentials=None)
[info     ] Loading page                   [webengine] url=https://vpn.example.com/...
[info     ] Terminate requested.           [webengine] 
[info     ] Exiting browser                [webengine] 
[info     ] Browser exited                 [openconnect_sso.browser.browser] 
[info     ] Response received              [openconnect_sso.authenticator] id=success message=
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.