Ubuntu 21.04에 openconnect-sso를 설치하는 방법

Ubuntu 21.04에 openconnect-sso를 설치하는 방법

설치하고 싶습니다openconnect-ssh. 프로젝트의 설치 지침이 복잡해 보이지만 무엇인지 잘 모르겠습니다 pipx.

pipx를 사용하지 않고 기본 Ubuntu qt 라이브러리를 사용하지 않고 Ubuntu에 openconnect-sso를 어떻게 설치합니까?

를 사용하여 설치하려고 했지만 pip다음과 같은 오류가 발생했습니다.

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'

답변1

먼저 Qt5 Python 종속성을 설치해야 합니다.

sudo apt install python3-pyqt5 python3-pyqt5.qtwebengine vpnc-scripts openconnect

그런 다음 pip를 사용하여 openconnect-sso를 설치합니다.

pip install openconnect-sso

그런 다음 앱을 쉽게 실행할 수 있습니다.

$ 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=

답변2

설치 지침에 연결하여 열어본 문제는 다음과 같습니다.https://github.com/vlaci/openconnect-sso/issues/114<-- (동의하고 관심을 끌고 싶다면 GitHub에서 엄지손가락을 치켜세워 찬성 투표하세요.)

...여기 있습니다:openconnect-ssoOkta SSO(Single-Sign-On)를 통한 SAML 및 Duo 2단계 인증과 함께 "openconnect"(래퍼를 통해)를 사용하는 방법<-- 전체 지침, 세부정보 및 스크린샷을 보려면 여기를 참조하세요.

즉,Linux Ubuntu에 설치하려면 다음을 수행하십시오 openconnect.openconnect-sso

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

또한보십시오내 주요 답변사용자 정의 구성 파일을 생성하는 방법 ~/.my_ssl.conf과 여기에 추가할 내용에 대해 알아보세요. 주요 답변에는 발생할 수 있는 일부 오류를 방지하는 데 필요한 세부 정보가 포함되어 있습니다.

파일 하단에도 몇 줄을 추가해야 합니다 ~/.bashrc. 다시, 참조내 주요 답변.

용법(참고: 서버 주소와 SAML 그룹을 찾는 방법은 다음을 참조하세요.여기 내 답변 하단에 "VPN 서버 주소 및 SAML 그룹을 찾는 방법"이 있습니다.):

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

관련 정보