Назад | Перейти на главную страницу

Есть ли способ настроить oAuth с помощью Openvpn или Wireguard?

Я хочу создать набор служб, требующих единого входа. По сути, вы входите в систему моего провайдера oAuth, и у вас есть доступ к openvpn-соединению (или к веб-сайту) без дополнительной безопасности, за возможным исключением исходной настройки.

Поэтому мой вопрос: как мне автоматизировать openVpn, чтобы я мог делать одно из двух:

  1. Аутентифицировать мое соединение с помощью токена вместо пароля / имени пользователя

Или

  1. Аутентифицировать мое соединение с помощью имени пользователя / пароля, которые я затем могу отправить своему провайдеру oAuth и вернуть токен клиенту для других приложений

Читать человек openvpn. Это исчерпывающий источник информации об OpenVPN.

Позвольте мне просто скопировать и вставить часть этой страницы. Думаю, это должно полностью ответить на ваш вопрос:

--auth-token жетон

Этот вариант нельзя использовать напрямую в каких-либо файлах конфигурации. --client-connect сценарий или --plugin который цепляется за OPENVPN_PLUGIN_CLIENT_CONNECT или OPENVPN_PLUGIN_CLIENT_CONNECT_V2 звонки. Эта опция предоставляет возможность заменить пароль клиента на токен аутентификации в течение срока службы клиента OpenVPN.

Каждый раз, когда соединение повторно согласовывается и --auth-user-pass-verify сценарий или --plugin используя OPENVPN_PLUGIN_AUTH_USER_PASS_VERIFY срабатывает ловушка, он передаст этот токен в качестве пароля вместо пароля, предоставленного пользователем. Маркер аутентификации может быть сброшен только путем полного переподключения, когда сервер может передать новые параметры клиенту. Пароль, введенный пользователем, никогда не сохраняется после установки токена аутентификации. Если сторона сервера OpenVPN отклоняет токен аутентификации, клиент получит AUTH_FAIL и отключиться.

Это позволяет использовать двухфакторные методы аутентификации, такие как HOTP или TOTP, без необходимости извлекать новый код OTP каждый раз при повторном согласовании соединения. Другой вариант использования - кэширование данных аутентификации на клиенте без необходимости кэширования пароля пользователя в памяти в течение всего сеанса.

Чтобы использовать эту функцию, --client-connect сценарий или --plugin нужно положить

push "auth-token UNIQUE_TOKEN_VALUE"

в файл / буфер для данных динамической конфигурации. Затем это заставит сервер OpenVPN передать это значение клиенту, который заменит локальный пароль на UNIQUE_TOKEN_VALUE.

Я наткнулся на несколько ссылок, когда искал аналогичное требование единого входа для WireGuard. Я перечисляю их ниже.