Может ли мой веб-сайт * безопасно * разрешить вход в систему через Facebook Connect, Google Friend Connect, OpenID, * и * etc?
-
06-07-2019 - |
Вопрос
Возможно ли, чтобы веб-сайт позволял пользователям входить в систему с помощью нескольких различных методов, таких как Facebook Connect, OpenID и т.д.?
Не имея в виду одновременный вход в систему одного и того же пользователя, но интересуясь, возможно ли иметь несколько вариантов "единого входа".
Есть ли побочный эффект от того, что пользователь с учетными данными, скажем, OpenID и Facebook входит в систему как оба, с отдельной информацией о сеансе, так и каким-либо образом "играет" или обманывает "систему"?
Является ли это основной причиной для предложения только одного?Есть ли другие причины?
Обновить: Чтобы немного прояснить ситуацию, я должен сказать, что мы хотели бы использовать Facebook Connect, но не у всех наших предполагаемых пользователей есть учетная запись Facebook.То же, что и с OpenID и т.д.Мы делай необходимо привязать действия пользователя к определенной локальной "учетной записи", которая, очевидно, будет синхронизирована с любым поставщиком авторизации, который они использовали для входа в систему (или привязать позже, как с SO), но хотелось бы предложить максимально возможное удобство.
Может быть, нам стоит просто обойтись собственными силами?
Решение
Я предлагаю отслеживать все различные формы аутентификации в одной учетной записи.Конечно, это может быть сделано только в том случае, если пользователь сам это сделает.Но взгляните на это с другой стороны.Ничто не мешает человеку настроить несколько учетных записей в пользовательской системе аутентификации и выполнять те же "игры", что и использовать различные OpenID-подобные учетные записи для выполнения одних и тех же действий!Использование этих форм аутентификации наряду с пользовательской внутренней системой отслеживания - хороший способ, и на самом деле он не создает никаких новых сложностей в отношении безопасности, которых у вас не было бы при использовании только внутренней системы входа в систему.Это просто добавляет больше факторов удобства для ваших пользователей (за счет большего количества кодирования для вас ... но разве это не всегда так?(:Р) ).
Другие советы
Мои планы для этого состоят в том, чтобы каждый поставщик единого входа мог сопоставлять учетную запись единого входа с локальным идентификатором пользователя.Вы сможете назначить несколько учетных записей единого входа одной локальной учетной записи.Все это аккуратно скрыто за интерфейсом, вероятно, с использованием шаблона Цепочки командования.
Вам следует обратить внимание на использование RPX.Они обрабатывают все это за вас и разрешают Facebook, OpenID, Windows Live Id и многое другое.Результат прозрачен для вас - вы просто получаете непрозрачный токен для представления идентификатора.