Выбор ответа Middle Безопасность мобильных приложений обновлено

OAuth в мобильном приложении

Вопрос

Как правильно реализовать вход через OAuth 2.0 в мобильном приложении?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Authorization Code с PKCE через системный браузер (ASWebAuthenticationSession, Custom Tabs). RFC 8252 (OAuth для нативных приложений) рекомендует системный браузер: пользователь видит настоящий адрес, у приложения нет доступа к паролю, работают сохранённые сессии.

Варианты ответа

  1. Implicit flow во встроенном WebView: токен сразу приходит в приложение без лишнего обмена кода
  2. Authorization Code с PKCE через системный браузер (ASWebAuthenticationSession, Custom Tabs)правильный ответ
  3. Попросить у пользователя пароль от стороннего сервиса и обменять его на токен на своём сервере
  4. Authorization Code с client secret, зашитым в приложение и защищённым обфускацией строк

Разбор

RFC 8252 (OAuth для нативных приложений) рекомендует системный браузер: пользователь видит настоящий адрес, у приложения нет доступа к паролю, работают сохранённые сессии. PKCE защищает код авторизации от перехвата другим приложением. Implicit flow устарел, WebView позволяет приложению подсмотреть пароль. Client secret в приложении не секрет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.