AWS Cognito - опция входа в социальную сеть - PullRequest
0 голосов
/ 20 декабря 2018

Мы реализовали параметры социальной регистрации и входа в систему для нашего приложения, ориентированного на потребителя (веб-приложение для iOS, Android и React Native) , и мы используем AWS Cognito и FB OAuth для обработки аутентификациипользователи.

Мы еще не живы, но обнаружили «проблему» в способе аутентификации пользователя с помощью этого метода.У меня есть только базовый уровень технических знаний в этой области, поэтому, пожалуйста, прости меня за любой язык, который я использую.

По сути, наше приложение должно запрашивать у пользователя только свои учетные данные Facebook (дляили войдите в систему) ЕСЛИ и ТОЛЬКО ЕСЛИ они не имеют активного и вошедшего в систему сеанса Facebook в этом браузере.

например,

  • Если пользователь вошел в FB в этом браузере и хочет войти в наше приложение, наше приложение может «увидеть», что существует активный вход в FB, использовать его для аутентификации пользователя изарегистрируйте их в нашем приложении.
  • Если пользователь не не вошел в FB в этом браузере и хочет войти в наше приложение, наше приложение может «увидеть», что не является активным логином FB и, следовательно, предлагает пользователю ввести свои учетные данные FB для аутентификации.Предполагая, что они делают это успешно, они затем входят в наше приложение.

Если пользователь выходит из нашего приложения, а затем возвращается позже и хочет войти снова, вышеупомянутый «тест» запускается для проверкиможем ли мы немедленно подтвердить их подлинность или нужно ли их запрашивать для предоставления учетных данных FB.

Наше текущее понимание от нашего технического партнера состоит в том, что это невозможно, но мы стремимся понять, удалось ли это кому-либо сделатьиспользуя технологии, которые мы используем?

Наконец, кто-нибудь успешно использовал SDK FB для iOS и Android вместе с AWS Cognito, чтобы позволить их приложению использовать собственное приложение FB (на устройстве) какпуть к аутентификации (против перетаскивания их на веб-страницу, где пользователь должен ввести кредиты FB) ?

Спасибо, Том

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

В дополнение к тому, что @donkon уже указало, ваше нативное приложение не будет иметь доступа к каким-либо учетным данным, хранящимся в пользовательском агенте (браузере), где была выполнена авторизация.Это предполагаемое поведение и повышает безопасность.

Когда ваш клиент требует получить учетные данные клиента (токен доступа) для вашего приложения и должен аутентифицировать пользователя через внешний IdP (здесь FB)Вы обычно запускаете этот процесс аутентификации в пользовательском агенте.Поведение этого сайта зависит от IdP и может быть несколько адаптировано с параметрами, предоставленными в качестве параметров запроса в URL-адресе, который вызывает IdP.Обратите внимание, что FB Login не является ни полностью OAuth2, ни OIDC-совместимым.

Для входа в Facebook соответствующим параметром для настройки потока является auth_type, что аналогично опции prompt для IdP, совместимого с OIDC.Это допустимые значения, конечно же, зависят от поставщика: reauthenticate, https, rerequest.

Тем не менее, остаются вопросы, как вы можете настроить поток регистрации и входа в AWS Cognito, который может перенаправлять параметры в IdP для входа в FB.Я не могу ответить на это сам, так как я до сих пор не использовал AWS Cognito.

Но, насколько я понимаю, ваши требования не могут быть выполнены на 100%, так как ваше приложение не может "увидеть", что в пользовательском агенте есть действительный сеанс.Однако важно то, является ли поведение приемлемым с точки зрения UX - и, конечно, самое важное, оно должно быть безопасным.

Ссылка:

https://developers.facebook.com/docs/facebook-login/reauthentication/ https://developers.facebook.com/docs/facebook-login/permissions/requesting-and-revoking/

0 голосов
/ 26 декабря 2018

В рамках OAuth 2.0 (вы не указали) поток будет перенаправлен через браузер.У провайдера идентификации будет доступ к файлам cookie, хранящимся в браузере, и он сможет получать данные в любых активных сеансах.Об этом вам не следует беспокоиться, если вы не внедрили собственное хранилище файлов cookie или браузер.

Пакеты FB SDK предоставляют различные варианты поведения при входе в систему - от чтения сеанса из приложения Facebook до браузера.Они задокументированы для Android и iOS .

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