Ответ 1
Оригинальный ответ
OpenID работает, отправив пользователя на веб-сайт своего провайдера, а затем перенаправив его обратно на сайт "полагающийся" (cf спецификация OpenID). Для этого процесса требуется веб-браузер, поэтому вам нужно либо интегрировать его в приложение, либо открыть его. В последнем случае вам также нужен способ получить результат процесса аутентификации, попросив пользователя скопировать его или запустить веб-сервер на локальном хостинге.
Второй ответ после обновления вопроса
- Механизм аутентификации должен работать в автономном приложении на всех основных платформах (Linux, Windows, Darwin).
- Механизм аутентификации должен работать с приложением без gui.
Без GUI лучшим решением, вероятно, является просто запрос пользователю на его пароль. OpenID и OAuth 1.0 не поддерживают этот прецедент, но OAuth 2.0 делает. authenticate-oauth и hoauth не поддерживают протокол 2.0, но есть пакет hoauth2.
Третий ответ после дальнейших подробностей, приведенных в комментариях
Пользователю будет разрешено создавать ауттинг в веб-службе (и войти в систему с помощью exisitng google/(и т.д.)). У него также будет возможность загрузить автономное приложение, которое после выполнения предложит ему войти - синхронизировать настройки, учетные записи и т.д.
В этом случае я считаю, что самым простым решением является создание уникального "ключа приложения" для каждого пользователя. Затем он может ввести свое имя пользователя и ключ приложения в отдельное приложение для аутентификации на вашем веб-сайте. Этот метод позволяет избежать запроса его пароля Google/etc, который он даже не знает, использует ли он менеджер паролей.