Согласно oAuth2.0 аутентификация должна происходить в собственном браузере устройства, тогда почему все известные приложения имеют собственные экраны входа в систему - PullRequest
1 голос
/ 26 января 2020

Это что-то очень запутанное, и я не могу найти никакого решения для этого, в соответствии с рекомендациями oAuth 2.0 для мобильной интеграции,

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

Ссылка: https://tools.ietf.org/html/rfc8252

Как в Facebook, так и в Twitter есть собственные экраны входа в систему, можно сказать, что это не так следуя рекомендациям oAuth или их любой другой подход, который соответствует рекомендациям oAuth, где мы можем использовать собственные экраны входа в систему?

Также есть ли какие-либо собственные приложения, в которых мы видим, что следуют рекомендациям oAuth. Спасибо.

1 Ответ

2 голосов
/ 26 января 2020

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

В случае Facebook / Twitter и подобных им пользователь не использует свои учетные данные для аутентификации в сторонней системе, а проверяющая сторона и аутентифицирующая сторона совпадают.

Это означает, что, например, Facebook больше не получает доступа к данным пользователя, если они украли учетные данные пользователя, поскольку данные находятся на его серверах. Предположительно они также доверяют своим собственным процессам разработки, чтобы гарантировать, что мошеннический код не был внедрен в приложение.

С точки зрения пользователя, они также доверяют приложению (при условии, что они установили его из надежного источника, такого как App Store) и ожидают, что смогут войти в приложение. Быть вытолкнутым в веб-браузер не будет лучшим пользовательским опытом.

Действительно, вполне вероятно, что приложения Facebook et c даже не используют поток OAuth; им не нужно для своих собственных пользователей.

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

Для веб-протокола OAuth на iOS Apple рекомендует использовать SFSafariViewController для представления процесса входа в приложение; это исключает «выпрыгивание» пользователя из приложения в системный браузер, а затем обратно в приложение, гарантируя, что код приложения не будет иметь никакого доступа к действиям пользователя в веб-сеансе.

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