Авторизация и аутентификация REST API (веб + мобильный)

Я читал об oAuth, Amazon REST API, HTTP Basic / Digest и т. Д., Но не могу собрать все это «единым целым» . Это, наверное, самая близкая ситуация - Создание API для мобильных приложений - Аутентификация и авторизация

Я бы хотел создать веб-сайт, ориентированный на API, - сервис.Итак (вначале) у меня был бы API в центре и веб-сайт (PHP + MySQL) мог бы подключаться через cURL , Android и iPhone через свои сетевые интерфейсы. Итак, 3 основных клиента - 3 ключа API. И любой другой разработчик также может разрабатывать через интерфейс API, и он получит свой собственный ключ API. Действия API будут приниматься / отклоняться в зависимости от статуса userLevel, если я администратор, я могу удалить что угодно и т. Д., Все остальные могут управлять только своими локальными (учетными) данными.

Во-первых, авторизация - следует ли мне использовать oAuth + xAuth или мою собственную реализацию (см. http://docs.amazonwebservices.com/AmazonCloudFront/latest/DeveloperGuide/RESTAuthentication.html? г = 9197 )? Насколько я понимаю, на пользователь сервиса Amazon == пользователь API (имеет ключ API) . В моем сервисе мне нужно разделить стандартных пользователей / учетную запись (того, кто зарегистрировался на веб-сайте) и учетные записи разработчика (у которых должен быть свой ключ API).

Поэтому мне сначала нужно авторизовать ключ API , а затем аутентифицировать самого пользователя . Если я использую схему Amazon для проверки ключей API разработчика (авторизации приложения), какую схему мне следует использовать для аутентификации пользователя?

Я читал о получении токена через api.example.org/auth после ( через HTTPS , HTTP Basic), отправляя мое имя пользователя и пароль, а затем пересылаю его при каждом следующем запросе.Как управлять токенами, если я одновременно вошел в систему на Android и на веб-сайте ? А как насчет атаки «человек посередине», если я использую SSL только при первом запросе (когда передаются имя пользователя и пароль) и только HTTP при каждом другом? Разве это не проблема в этом примере Пароль, защищающий службу REST?

69
задан Community 23 May 2017 в 12:18
поделиться