10

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

Не является ли Oauth лучшим решением, заменяющим базовый и дайджест auth?

+0

Прохладный сайт, пытающийся пролить свет: http://oauthbible.com/ – SudoPlz

ответ

2

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

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

Не знаю много о дайджесте, к сожалению.

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

18

Glossing многих деталей, но:

HTTP Basic: отправить имя пользователя & пароль в незашифрованном в заголовке Authorize

HTTP Digest: отправить имя пользователя & пароль, где пароль хешированы сервером при условии nonce

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

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

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

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

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

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

+3

Это должен быть принятый ответ. –

+0

FYI, Oauth2.0 использует HTTP-аутентификацию HTTP в некоторых частях потока. – garbagecollector

+0

Хм .. Я не вижу реальной разницы между HTTP Digest Authentication с qop = auth-int ([rfc2617, июнь 1999] (http://tools.ietf.org/html/rfc2617) и авторизацией OAuth 1 схема (2010) ... не знаю, о чем беспокоит OAuth :-) – Kenney

4

Phil Sturgeon имеет достойную электронную книгу (Build APIs You Won't Hate) со всей главой, посвященной аутентификации. Она охватывает:

  • Basic
  • Digest
  • OAuth 1.0a
  • OAuth 2

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

Обновление Почему downvote?