Лучшие практики доступа к API-серверу в мобильных приложениях, которые входят в систему с помощью OAuth - PullRequest
0 голосов
/ 02 января 2019

У меня есть следующие объекты:

  • Мобильное приложение
  • собственный API-сервер
  • собственный OAuth-сервер

Мне нужно внедрить OAuth в мобильном приложении на OAuth-сервере и получить доступ к пользовательской информации на сервере API после , и у меня возникли проблемы с тем, как этого можно достичь безопасно , Я думаю только о следующих методах:

Способ 1. Передача идентификатора пользователя непосредственно из мобильного приложения на сервер API

  1. Войти в систему через OAuth в мобильном приложении (используя библиотеку, например, AppAuth)
  2. Сохранить идентификатор пользователя, полученный из OAuth, в мобильном приложении
  3. Мобильное приложение отправляет идентификатор пользователя на сервер API, чтобы они могли извлечь нужные ресурсы обратно в мобильное приложение

Однако этот метод выглядит небезопасным, , поскольку злоумышленник может подделать свой идентификатор пользователя при передаче в API.

Способ 2: передать OAuth access_token на сервер API, позволить серверу API снова вызвать сервер OAuth

  1. Войти в систему через OAuth в мобильном приложении (используя библиотеку, например, AppAuth)
  2. Сохранить маркер доступа, полученный из OAuth
  3. Мобильное приложение отправляет access_token на сервер API
  4. API-сервер передает access_token серверу OAuth
  5. OAuth-сервер возвращает информацию о пользователе обратно на API-сервер
  6. Теперь сервер API имеет информацию о пользователе и может возвращать нужные ресурсы обратно в мобильное приложение. enter image description here Метод 2 кажется более безопасным, однако я не вижу, чтобы кто-то предлагал такую ​​инфраструктуру. Этот метод также требует значительных ресурсов, поскольку серверу API необходимо каждый раз вызывать сервер OAuth для вызова API.

Итак, мой вопрос:

  1. Каков наилучший способ доступа к API-серверу в мобильном приложении, которое регистрируется с помощью OAuth?
  2. Если есть лучшая практика, есть ли ссылка на эти ресурсы?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...