Вход в систему через Google, без входа в Google
Из любопытства, когда я захожу на сайт, такой как Stackru, через OpenID или аналогичный (Google, Facebook и т. Д.), Я также захожу в сам провайдер идентификации (например, Google).
Есть ли способ, чтобы пользователи могли войти на мой сайт, используя сторонние идентификационные данные, не входя в эту учетную запись?
Мне известно, что вход в Google работает не так, как другие, используя вход в Google. Меня интересует общий ответ для всех популярных сервисов входа в систему (Google, Facebook, Twitter, ...), основаны ли они на OpenID (2.0), OAuth или проприетарном решении, например: "С OpenID, который работает если вы делаете то-то и то-то. Для Google это невозможно, потому что по техническим причинам."
2 ответа
OpenID/ OAuth - это общий "протокол", который позволяет сайту (например, stackru) находиться у провайдера идентификации (например, Google) для аутентификации. Это включает в себя транзакцию, где
- Вы говорите stackru, что будете использовать goole для входа
- stackru отправит в Google для проверки подлинности с помощью URL-адреса перенаправления.
- Google аутентифицирует вас, эффективно регистрирует вас в своих сервисах (чтобы узнать, кто вы)
- Google (и любой другой поставщик удостоверений) должен спросить вас, хотите ли вы, чтобы ваша электронная почта и другая информация были отправлены в stackru
- Если вы согласны, Google отправит эту информацию потребителю (stackru)
- Начиная с этого момента, пользователь-аутентификатор (например, stackru) может принять эту информацию (вашу электронную почту) как действительную.
Любая схема, которая не проходит через логин провайдера ID (шаг 3), предоставит ваши учетные данные (возможно) ненадежной третьей стороне (вы бы хотели, чтобы в stackru был ваш пароль Google?)
Шаг 3 также устанавливает cookie на вашем компьютере, который содержит ваш сеанс с Google. Google (или любой провайдер идентификаторов) может считать этот сеанс действительным для всех других целей (Gmail и т. Д.), Но в любом случае это удобная функция
Если у вас уже есть установленный сеанс с Google, вам, возможно, не потребуется снова входить в систему.
Поведение, которое вы описываете, возможно (и IDP может легко его реализовать), но нежелательно по нескольким причинам.
- Он обучает пользователей фишингу. Потому что после нажатия кнопки "Войти" пользователи должны вводить id и pw, поэтому можно легко показать страницу входа и пользователи будут вводить свою информацию.
- Конечно, это не удобно для пользователей.
- С точки зрения риска и взлома pw, лучше делать много "проверок", когда пользователь входит в систему, и может потребоваться дополнительная проверка (например, пинг по телефону или задавать вопросы), а затем создать сеанс входа в систему.
Я понимаю желание, чтобы пользователь не входил в IDP как побочный эффект, и вы могли бы легко добиться этого, если пишете код IDP или предупреждаете пользователя о выходе из IDP, когда они возвращаются на ваш сайт.