[Moscow.pm] Аутентификация для REST API

Ivan Petrov i.petro.77.00 на gmail.com
Чт Сен 22 04:26:07 PDT 2016


> Привет.
> Если третьим лицам ничего делегировать не нужно. Используй подписанные куки,
> это надёжный, простой и удобный механизм.

имхо для API использовать куки очень нехорошее решение. ввиду чистого
неудобства.


для API лучше всего подходит

1. "забыть про авторизацию" (она же - авторизация по URL), то есть в URL
включен скажем UUID/токен, который невозможно подобрать (но можно
поменять на выбранный пир)
2. подписи (многие банки применяют)
 - в каждый запрос добавляется скажем timestamp - когда он
   формировался
 - этот timestamp (вместе с какими-либо другими параметрами)
   подписывается по какому-то правилу (скажем sha1($timestamp .
   $secret))
 - подпись приатачивается к каждому запросу

во втором случае можно исключить повторение запросов, даже если их
перехватили (ввести понятие TTL запроса).

Можно еще вводить понятие (UU)ID запроса (многие банки тоже делают)


PS: в последнее время я не оч хорошо отношусь к идее собственно REST.
то есть с REST (использование транспортных кодов в качестве кодов
логики) надо быть осторожными ибо иногда натыкаешься на то что коды
эти пересекаются. Ответ кода в теле а не в транспортной инфраструктуре
кажется лучшим решением.


Подробная информация о списке рассылки Moscow-pm