Использование OpenID с существующим системой входа в систему сайта

StackOverflow https://stackoverflow.com/questions/3237333

Вопрос

Я недавно реализовал конечные точки Google и Yahoo в мою систему аутентификации на моем сайте, чтобы пользователи могли избежать создания учетной записи на моем сайте. Довольно обычная практика, верно?

У меня есть конкретный вопрос, но сначала немного справочная информация.

Когда я прохожу через трехпожачную аутентификацию, я использовал обмен атрибутом, чтобы получить имя пользователя и адрес электронной почты. В настоящее время я храним их OpenID (длинная строка, которая выглядит так: https://me.yahoo. COM / A / 2Z7LPLQSNI_DGTAW (... куча буквенно-цифрового) в специальном поле в таблице пользователей.

Давайте скажем, мой стол пользователей выглядит так.

type  id  password                          email             key
1     1   0e9212587d373ca58e9bada0c15e6fe4  test@example.com
2     1   b8d2f4a50d2b364ff2766556ba50da48  me@gmail.com      https://www.google.com/accounts/o8/id?id=AItOawll6-m_y…
2     2   6687d5d88b359ee1340717ebf0d1afc6  you@gmail.com     https://www.google.com/accounts/o8/id?id=AItOawm3-C_9…
3     1   fd193c2fa449c9d6dc201d62d5ca86d3  him@yahoo.com     https://me.yahoo.com/a/2Z7LplQsnI_DgtAw…
1     2   2e710b13b3dd787e2b15eab3dde508c2  person@site.com

types
1 = native account
2 = Google OpenID
3 = Yahoo OpenID
.

Когда пользователь входит в систему с собственной учетной записью, электронная почта и пароль используются для аутентификации (DUH).

Когда пользователь использует OpenID Google или Yahoo, то openid (поле Key) используется для аутентификации.

Хорошо, теперь, когда вся справочная информация выходит с дороги ... Будет ли быть в безопасности, если я забуду о хранении самой OpenID и просто использовать электронное письмо, которое я вернулся из Exchange, чтобы аутентифицировать пользователя? может кто-то поднял третий этап операции OpenID или могу доверять, что всякий раз, когда я получаю you@gmail.com из атрибута Exchange Portion Opend Transaction с Google, что это подлинно и не подходит?

Это было полезно?

Решение

Такой преднамеренный разрыв протокола приведет к тому, что в долгосрочной перспективе вызовет основные головные боли.Например, считайте случаи, когда пользователь регистрирует использование пользовательского сервера OpenID, но предоставляет адрес электронной почты @ gmail.com.

единственная информация, гарантированная абсолютно согласованной и надежной после обмена аутентификацией OpenID Identity URL.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top