HTTP базовая аутентификация, дайджест-аутентификация и Oauth? - PullRequest
10 голосов
/ 01 ноября 2010

Какую из базовых аутентификаций, дайджест-аутентификаций и Oauth следует использовать для моего веб-приложения, чтобы предоставить пользователям доступ к ресурсам через вызовы Restful API.

Разве Oauth не является лучшим решением, заменяющим базовую и дайджест-аутентификацию?

Ответы [ 3 ]

20 голосов
/ 19 апреля 2013

Здесь много деталей, но:

http basic: отправить имя пользователя и пароль в открытом виде в заголовке Authorize

http digest: отправьте имя пользователя и пароль, где пароль был хеширован сервером, предоставленным nonce

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

  • Из мобильного фото-приложения пользователь перенаправляется на страницу входа в Facebook
  • После входа в систему они перенаправляются обратно в мобильное приложение для фотографий с кодом.
  • Приложение для мобильных фотографий выкупает этот код для токена доступа
  • Мобильное приложение для обработки фотографий может затем отправлять запросы в Facebook для публикации моих фотографий на моей стене.

oauth1.0a: более безопасный, чем oath2, но более сложный для реализации, также требует подписи всех запросов.

oauth2: для безопасности использует ssl и не требует подписания запроса. Хотя его ведущий автор отказался от проекта, потому что считает, что он не соответствует ни одной из первоначальных целей разработки (безопасность, совместимость), он широко используется в Facebook и Google.

Вот несколько статей, которые я нашел здесь полезными:

Недостаточно mojo, чтобы связать его с rfcs, но они являются окончательными источниками, хотя и слегка неусваиваемыми.

3 голосов
/ 07 октября 2014

Фил Стерджон получил достойную электронную книгу ( API сборки, которую вы не будете ненавидеть ) с целой главой, посвященной аутентификации. Он охватывает:

  • Basic
  • Digest
  • OAuth 1.0a
  • OAuth 2

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

Обновление Почему понижающий голос?

2 голосов
/ 12 ноября 2010

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

Basic может работать со многими клиентами браузера данных, такими как Sesame, а также работать с Excel 2010, а также с любым старым браузером.единственная проблема заключается в паролях, распространяющихся в открытом виде, которые можно уменьшить, разместив ваше приложение через https.

К сожалению, я не очень разбираюсь в дайджесте.

Я лично пытаюсь протестироватьреализация каждого: http basic и oauth.

...