Ключи API против аутентификации HTTP против OAuth в RESTful API

Я работаю над созданием RESTful API для одного из поддерживаемых мной приложений. В настоящее время мы стремимся встроить в него различные вещи, которые требуют более контролируемого доступа и безопасности. Изучая способы защиты API, я обнаружил несколько разных мнений о том, какую форму использовать. Я видел, как некоторые ресурсы говорят, что HTTP-Auth - это лучший способ, в то время как другие предпочитают ключи API, и даже другие (включая вопросы, которые я нашел здесь на SO), клянутся OAuth.

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

Тогда мой вопрос - если все это делается по HTTPS, каковы некоторые практические различия между этими тремя? Когда одно следует рассматривать по сравнению с другими?

97
задан Shauna 21 July 2011 в 13:52
поделиться