Подтвердить что ты не робот

Тоны и сеансы OAuth в REST

В другую минуту я прочитал статью об OAuth. В нем подробно описывались токены, которые обмениваются между клиентом и поставщиком услуг во время серии запросов.

В статье также упоминается, что OAuth приобретает значительную популярность в RESTful API в качестве уровня авторизации. Как я понял, REST должен оставаться полностью без гражданства.

Вопрос: не повторяет ли этот повторный токен торпедо REST "принцип безгражданства"? ИМХО жетоны можно рассматривать как своего рода идентификатор сеанса, не так ли?

4b9b3361

Ответ 1

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

К сожалению, существует Real World TM чтобы бороться с тем, где нам нужно делать такие вещи, как разрешать приложениям аутентифицироваться от имени людей без запроса пароля, что OAuth делает достаточно хорошо. Было бы невозможно реализовать аналогично безопасную схему аутентификации без такого состояния. Действительно, одним из изменений, требуемых OAuth (1.0a), было добавление большего количества состояний в протокол согласования токенов для снижения риска безопасности.

Итак, торпедирует ли он безгражданский принцип? Да. Это имеет значение? Если вы не живете в башне из слоновой кости: -)

Ответ 2

Аутентификация - это состояние, которое должно отслеживаться каким-то образом при работе в веб-взаимодействиях. В конечном счете, если ваше приложение является спокойным или нет, сервер должен иметь возможность отслеживать состояние аутентификации каждого пользователя, и, к сожалению, для этого требуется некоторая обход базовой безгражданности HTTP и любых дополнительных транспортных средств/методов (например, REST) ​​поверх Это.

Следовательно, для разработки какого-либо аутентифицированного приложения принцип государства должен быть обуглен где-то в обуви, и если это так, OAuth поверх REST, вот как это должно быть!