Можно ли выполнить аутентификацию с использованием OAuth, не запрашивая пользователя, когда у нас есть учетные данные пользователя? - PullRequest
3 голосов
/ 09 сентября 2009

Корпус:
Настольный клиент взаимодействует с сервером А.
В результате сервер A должен подключиться к серверу B.
Клиент передал запрос oauth.
Теперь в клиенте у нас уже есть учетные данные пользователя для сервера B. Есть ли способ аутентификации на сервере B без запроса пользователя или отображения какого-либо пользовательского интерфейса? Нам нужно сделать это общим способом, поскольку мы не знаем, что такое сервер B.

В настоящее время я понимаю, что это не так. Даже если бы мы каким-то образом обрабатывали форму входа в систему, все равно было бы подтверждение OAuth о том, что пользователь должен будет нажать.

Я просто хочу подтвердить, что мое текущее понимание верно. Дайте мне знать, если у вас есть какие-либо идеи.

Ответы [ 2 ]

2 голосов
/ 16 февраля 2013

В простом ответе Нет .

Поскольку сервер B должен взаимодействовать с сервером A, сервер A должен быть зарегистрирован на сервере B (например, регистрация приложений в LinkedIn, Twitter и т. Д.). В основном это зависит от сервера B, но IMO-сервер B не разрешит прямой доступ.

Однако может быть другая ситуация, когда у вас есть 2 точки доступа для сервера B, и вы можете использовать данные сервера C или сервера A.

A =>C (Access)  
A !=>B (no access)  
C =>B (access)  

Здесь вы можете использовать данные сервера C для получения данных из B, а затем использовать данные A для получения данных из C.

1 голос
/ 10 сентября 2009

Клиент был отправлен на страницу авторизации на сервере B посредством перенаправления HTTP. Поскольку вы ничего не знаете о сервере B, вы не знаете, что включает в себя эта авторизация (и / или аутентификация); это выходит за рамки OAuth. Вы не знаете, что у вас есть учетные данные пользователя для сервера B, поскольку вы не знаете, что это такое.

Обычно клиент является выбранным пользователем браузером, и сервер B может принять решение принять учетные данные для аутентификации и / или авторизации, которые он сохранил на клиенте (обычно с cookie), без взаимодействия с пользователем. Тем не менее, это также вне вашего контроля; Вы не можете помешать серверу B требовать взаимодействия с пользователем. Если вам нужна только аутентификация, OpenID с большей вероятностью разрешит это, поскольку обычно нет выбора идентификатора, но он все еще не уверен.

Вы можете сохранить токен доступа для последующего обновления и использования без повторной авторизации. Это также относится к серверу B, и вы не можете полагаться на это для универсального сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...