Как использовать плагин NetworkManager OpenConnect с аутентификацией SSO?

Вопрос или проблема

Я пытаюсь подключиться к VPN через OpenConnect с помощью плагина NetworkManager OpenConnect на Ubuntu 20.04.4 LTS. Аутентификация в VPN работает только путем генерации cookie через форму входа в браузере (Единый вход, SSO). Тем не менее, плагин NetworkManager показывает мне только окно запроса имени пользователя и пароля GNOME, хотя это бесполезно (независимо от того, что я ввожу, форма просто появляется снова без какой-либо ошибки, как здесь).

Ручной способ из командной строки работает так:

openconnect-sso vpn.uni.com -> Открывает форму входа в браузере и выводит cookie

openconnect vpn.uni.com --useragent=AnyConnect --cookie=MYCOKIE -> успешно подключается к VPN.

Есть ли способ заставить мой плагин NetworkManager OpenConnect показать форму входа SSO и аутентифицировать меня с помощью сгенерированного cookie? Если это не поддерживается нативно, есть ли обходные пути, чтобы мой VPN работал в качестве соединения NetworkManager? (например, выполнить скрипт при подключении к VPN через GNOME? и т.д.?)

Информация о версии:

  • network-manager-openconnect/focal,now 1.2.6-1 amd64 [установлен]
  • network-manager-openconnect-gnome/focal,now 1.2.6-1 amd64 [установлен]
  • openconnect/focal,now 8.05-1 amd64 [установлен]
  • Ubuntu 20.04.4 LTS, focal

Ответ или решение

Использование плагина NetworkManager OpenConnect с аутентификацией SSO может быть вызовом на Ubuntu 20.04.4 LTS. Проблема, с которой вы столкнулись, касается невозможности применения аутентификации через форму браузера непосредственно в NetworkManager. Давайте рассмотрим возможные решения и обходные пути.


Функциональность и ограничение NetworkManager

NetworkManager OpenConnect Plugin, установленный у вас (версия 1.2.6-1), по умолчанию не поддерживает SSO-авторизацию, требующую генерации cookie через браузер. Это ограничение вызывает проблему, которую вы описываете, — получение запроса на вход в систему через GNOME, который оказывается бесполезным для SSO.

Альтернативные решения:

  1. Использование скриптов:

    Раз вы можете успешно подключаться через командную строку, запланируем использование скрипта для автоматизации процесса подключения, объединяя обе команды.

    Создайте файл, например, vpn_connect.sh, и добавьте в него следующий код:

    #!/bin/bash
    
    # Запускаем openconnect-sso для получения cookie
    COOKIE=$(openconnect-sso vpn.uni.com | grep "COOKIE" | awk '{print $3}')
    
    # Используем полученный cookie для подключения
    openconnect vpn.uni.com --useragent=AnyConnect --cookie=$COOKIE

    Не забудьте сделать файл исполняемым:

    chmod +x vpn_connect.sh

    Теперь вы можете запускать этот скрипт для подключения к VPN.

  2. Интеграция через NetworkManager:

    Настройка NetworkManager для использования вашего скрипта может быть удобным обходным решением. Вы можете настроить NetworkManager так, чтобы он запускал указанный сценарий подключения.

    • Откройте редактор настроек NetworkManager:
      nm-connection-editor
    • Выберите ваше VPN-соединение и перейдите в "Настройки VPN".
    • В параметрах подключения найдите раздел настраиваемых скриптов или команд.
    • Установите скрипт vpn_connect.sh как команду для выполнения при подключении.
  3. Использование других инструментов:

    Еще один подход — использовать другие плагины или инструменты для OpenConnect, которые поддерживают интеграцию c SSO. Например, ocproxy или openconnect-sso, который вы уже используете, можно тоже попробовать применить в других контекстах для подключения через NetworkManager.

Заключение

Пока NetworkManager адаптируется к различным требованиям SSO, использование скриптов и обходных решений поможет достигнуть необходимой функциональности сегодня. Убедитесь, что вы предпринимаете все меры предосторожности, включая защиту скрипта от несанкционированного доступа, так как он может содержать чувствительные данные, такие как ваши учетные данные. С регулярными обновлениями Ubuntu и компонентов OpenConnect возможно, поддержка SSO может быть улучшена в будущих релизах, что упростит процесс настройки.

Оцените материал
Добавить комментарий

Капча загружается...