2011-01-12 5 views
8

Я хотел бы предложить аутентифицированный API-доступ к моему веб-приложению. Потребителями такой услуги являются, как правило, другие веб-сайты/службы.Лучший способ аутентификации для предоставления API доступа к Rails-приложению

Что было бы лучшим методом аутентификации этих пользователей? OAuth, openID, http-аутентификация?

ответ

8

Как так много в нашей работе, ответ на «это зависит». :)

  • HTTP Authentication - Если вы уже позволяя клиентам войти в свою службу с помощью идентификатора и пароля, вы, вероятно, только сделать минимальные работы, чтобы получить это приятно играть с вашим API. Если ваш API в основном одноцелевой и не требует подробных разрешений, вы можете получить здесь что-то довольно быстро.

  • API лексемы - Если вы хотите, чтобы клиенты могли легко проверить подлинность без предоставления пароля (думает, что компании, которые строят услугу, которая взаимодействует с API;.. Может быть, ИТ-отдел не хочет, чтобы команда разработчиков зная пароли и т. д.), то прикрепление случайного маркера API à la GitHub к учетной записи пользователя, вероятно, является самым быстрым способом. В качестве бонуса вы можете предоставить метод для восстановления маркера API без изменения пароля учетной записи.

  • OAuth - Если у вас есть несколько разрешений или хотите более мелкозернистой контроль над тем, как и когда клиент может получить доступ к API, OAuth это очень хорошая ставка (OAuth2 намного проще работать, IMO, и поддерживает multiple methods of obtaining an access token). Кроме того, на многих языках есть библиотеки, драгоценные камни и т. Д., Которые позволят им упростить рабочий процесс OAuth.

0

Я бы сказал, что «лучший» метод - это oAuth. Он более гибкий и может быть применен независимо для дальнейшего использования. Я использую oAuth для аутентификации моих клиентов (приложений).

; «? Который лучше всего»)

Смежные вопросы