Лучший метод аутентификации для предоставления доступа API к приложению Rails

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

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

2 ответа

Решение

Как много в нашей работе, ответ на вопрос "что лучше?" это "это зависит".:)

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

  • Токен API - если вы хотите, чтобы клиенты могли легко проходить аутентификацию без предоставления пароля (например, компании, которые создают сервис, взаимодействующий с вашим API; возможно, ИТ-отдел не хочет, чтобы команда разработчиков знала пароли и т. Д.) затем присоединение случайного API-токена в виде GitHub к учетной записи пользователя, вероятно, является самым быстрым способом. В качестве бонуса вы можете предоставить метод для восстановления токена API без необходимости изменения пароля учетной записи.

  • OAuth - если у вас есть несколько разрешений или вы хотите более детальный контроль над тем, как и когда клиент может получить доступ к вашему API, OAuth - очень хорошая ставка (с OAuth2 гораздо проще работать, IMO, и поддерживается несколько методов получения токена доступа).). Кроме того, многие языки имеют библиотеки, гемы и т. Д., Что позволит им упростить рабочий процесс OAuth.

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

;)

Другие вопросы по тегам