Является ли OAuth улицей с двусторонним движением? - PullRequest
2 голосов
/ 01 июня 2011

Я имею в виду, скажем, у меня есть две организации ACME и Boring Corp.

Пользователь в ACME хочет войти в Boring Corp., чтобы получить доступ к некоторому контенту, который будет просматриваться через веб-сайт Boring Corps. Они идут на Boring.com, и он перенаправляет их в ACME для входа. После проверки они перенаправляются обратно в Boring Corp для выполнения XYZ и доступа к ABC.

ОДНАКО, они также хотят в любое время просматривать информацию о XYZ и ABC от Boring Corp. со страницы самого сайта ACME. Таким образом, они, по сути, будут «давать ACME corp разрешение на доступ к данным, которыми они владеют на Boring Corp. НО их учетные данные для входа полностью хранятся в ACME и в нем.

Они не только заходят на сайт Boring Corp. через учетные данные ACME и делают что-то на сайте Boring Corp., но также запрашивают данные с сайта Boring Corp. для просмотра на сайте ACME. Все из того же логина ACME.

Разбить его дальше ...

  • Аккаунты пользователей хранятся на веб-сайте ACME
  • Пользователь обращается к Boring Corp, перенаправляется в ACME для входа в систему и возвращается обратно в Boring Corp для выполнения различных действий
  • Действия на Boring Corp производят Данные, хранящиеся на веб-сайте Boring Corp

позже в тот же день ...

  • Пользователь хочет просмотреть некоторые Данные, хранящиеся на веб-сайте Boring Corp., которые были созданы в результате выполненных им действий
  • Итак, он заходит на веб-сайт ACME, который запрашивает данные от Boring Corp для этого пользователя, чтобы он мог просматривать их на сайте ACME

Таким образом, он входит в Boring Corp через ACME, чтобы выполнить действия в Boring Corp, а затем собирается просмотреть данные, которыми он владеет в Boring Corp (данные, созданные в результате предпринятых там действий) с веб-сайта ACME. Все, используя тот же логин ACME.

Надеюсь, это прояснит ситуацию.

Это соответствующая OAuth ситуация?

Ответы [ 2 ]

1 голос
/ 01 июня 2011

Я думаю, что вы путаете две вещи: аутентификация и авторизация . Аутентификация связана с учетными данными, авторизация с правами доступа. Сам OAuth обрабатывает только авторизацию, поэтому я предполагаю, что вы используете OpenID или что-то еще для выполнения фазы аутентификации.

В этой ситуации у вас есть:

  1. служба аутентификации в ACME;
  2. служба авторизации в Boring Corp.

Нет никаких причин, по которым они несовместимы, но это две разные службы : доступ к ресурсам, предоставляемым Boring Corp, отличается от того, как Boring Corp аутентифицирует вас. В этом случае они также работают на разных машинах / в сетях.

Итак, чтобы ответить на ваш вопрос «OAuth улица с двусторонним движением?»: Нет, это не так. Тем не менее, вы можете реализовать то, что вы пытаетесь достичь. И это вполне может быть подходящим решением, но вы предложили какое-то решение без какого-либо описания требований, поэтому мы не можем судить об этом.

0 голосов
/ 01 июня 2011

в OAuth задействовано 3 пункта: «пользователь, потребитель и провайдер ... простой пример: разговор на фейсбуке ... пользователь - это мы (вы, я и смертные ...), потребитель: любой поставщик приложений (от другой компании-разработчика, кроме facebook, сторонних приложений): facebook

в моей компании .. пользователь: (смертные ... вы и я) потребитель: приложение, разработанное провайдером моей компании: моя компания

OAuth был разработан таким образом, чтобы сторонние приложения не имели доступа ко всей базе данных базовой компании, а только к определенной информации о пользователях относительно базы данных провайдера.

Вот почему он генерирует различные типы токенов, чтобы сторонние приложения не могли получить ваш пароль или почту, или любые другие вещи, которые вам не нужны, чтобы пользователи вне Facebook могли видеть, что этот токен является тем, кто аутентифицирует приложение, чтобы иметь доступ к определенным информация о пользователе.

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

В заключение: OAuth - это самый большой протокол аутентификации, но ... действительно ли он нужен вашей компании ?? кто-то вне вашей компании использует ваши ресурсы? есть сторонняя разработка? вот реальный вопрос ...

Чтобы прояснить мою точку зрения, посмотрите, сколько провайдеров сравнивается с клиентами, в каждом учебнике всегда есть одни и те же провайдеры: Facebook, Twitter, Google, Yahoo и т. Д. *

проверить, сколько клиентов ?? должно быть не менее миллиона, или миллиардов, или число, которое мы не можем произнести (каждое приложение, разработанное для твиттера или гугла Facebook, имеет строгие инструкции для аутентификации через OAuth

вот почему я не использую OAuth для ближайшего времени ... я думаю, что вы не должны ....

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