Или может любой oauth?
Все, что мне удалось найти - это двухфакторная аутентификация с помощью Google. Но я бы хотел использовать базу Google Apps для аутентификации OpenVPN.
Я считаю, что можно сделать что-то вроде gitlab. Куда можно поставить сертификат и потом пользоваться без логина и пароля.
В поисках решения этой проблемы я наткнулся на Ворота. Он автоматизирует создание профиля OpenVPN за OAuth и поддерживает MFA. Он также имеет консоль администратора для управления пользователями. Вот Сообщение блога от разработчиков, описывающих его вариант использования и функции.
ОБНОВЛЕНИЕ 06/2019 - Pritunl теперь мое решение для этого. Он поддерживает автоматическое создание профиля OpenVPN за Google Auth и предоставляет кроссплатформенный клиент, который упрощает настройку с помощью уникальных URI. Пользователь не авторизуется с Google для подключения (может потребоваться PIN-код), что может быть недостатком для некоторых, но я считаю, что простота использования отлично подходит для небольших команд.
Я не думаю, что есть хороший способ сделать это. Проблема в том, что методы аутентификации, поддерживаемые Google, такие как OAuth, действительно ориентированы на аутентификацию веб-приложений. Ключевым аспектом этого является то, что вы (как пользователь приложения) никогда не предоставляете свои учетные данные стороннему сайту. Сайт направляет вас на страницу авторизации в Google, на которую вы входите и авторизуете сторонний сайт.
Поскольку OpenVPN не является веб-приложением, я думаю, что сделать это разумным способом практически невозможно. По сути, вам нужно было бы написать собственный модуль аутентификации OpenVPN, который обращается к Google OAuth API, запрашивает токен аутентификации, а затем представляет пользователю специальный URL-адрес, по которому они должны будут перейти, где они войдут в систему, получат код доступа , который затем им нужно будет ввести в аутентификацию OpenVPN, чтобы он мог вернуться к вашему модулю аутентификации OpenVPN, чтобы вернуться в Google и получить «ура» или «нет» при аутентификации вас. Если это звучит запутанно, это потому, что это так.
Предполагая, что ваше упоминание о Google Apps означает, что вы используете платную версию Google Apps (теперь называемую Google Apps for Work), лучше всего, вероятно, будет настроить систему единого входа (SSO), в которой ваша внутренняя система управления идентификацией является источник истины, и как Google Apps, так и ваша система OpenVPN аутентифицируются по нему. Вы можете узнать больше о системе единого входа в Google Apps, просто выполнив поиск в Google. Имейте в виду, что это не обязательно простой процесс, и для его реализации часто требуются определенные усилия.
По сути, вам нужен способ предоставить свои учетные данные в OpenVPN, а затем выполнить аутентификацию от вашего имени. Это работает только в тех случаях, когда ваши пользователи доверяют свои учетные данные приложению (в данном случае VPN). Это работает для корпоративной аутентификации, но не соответствует видению Google в отношении ненадежных приложений.