Я хотел бы предложить аутентифицированный доступ API к моему веб-приложению.Потребителями такой услуги обычно являются другие веб-сайты / услуги.
Каков наилучший способ аутентификации этих пользователей?OAuth, openID, http аутентификация?
Как много в нашей работе, ответ на вопрос "что лучше?"это «это зависит».:)
HTTP-аутентификация - если вы уже разрешаете клиентам входить в вашу службу с помощью идентификатора и пароля, вам, вероятно, придется сделать только минимальноеработать, чтобы заставить это хорошо играть с вашим API.Если ваш API в основном одноцелевой и не требует подробных разрешений, вы можете получить что-то работающее довольно быстро здесь.
API Token - Если вы хотите клиентовчтобы иметь возможность легко проходить аутентификацию без предоставления пароля (например, компании, которые создают сервис, взаимодействующий с вашим API; возможно, ИТ-отдел не хочет, чтобы команда разработчиков знала пароли и т. д.), а затем прикрепили случайный токен APIà la GitHub для учетной записи пользователя, вероятно, самый быстрый путь.В качестве бонуса вы можете предоставить метод для регенерации токена API без необходимости изменения пароля учетной записи.
OAuth - если у вас есть несколько разрешений или вы хотите более точныеДетальный контроль над тем, как и когда клиент может получить доступ к вашему API, является хорошим выбором для OAuth (с OAuth2 гораздо проще работать, IMO, и он поддерживает несколько методов получения токена доступа ).Кроме того, многие языки имеют библиотеки, гемы и т. Д., Что позволит им упростить рабочий процесс OAuth.
Я бы сказал, что «лучший» метод - это oAuth. Он более гибкий и может быть независимым от приложения для дальнейшего использования. Я использую oAuth для аутентификации своих клиентов (приложений).
;)