Подтвердить что ты не робот

OpenID: как наилучшим образом связать несколько учетных записей OpenID с одним пользователем?

Я новичок в openID. Я трачу много времени на размышления о том, какие лучшие практики должны дать пользователю выбор, войти в систему с различными учетными записями OpenID.

(Я должен еще раз пояснить, что моя система не является системой, для которой требуется простая "обычная аутентификация" для публикации в блоге, а скорее полная система, такая как сайт socialnetworking, где пользователь всегда будет добавлять дополнительную информацию и редактировать существующую информацию для "его личной учетной записи"... Поэтому сама система требует наличия какой-то "учетной записи", которая будет связана с работой, которую выполняет пользователь.)

Учитывая случай, что я не создаю "выделенный пользовательский счет с паролем и именем пользователя для mysite" и полагаюсь только на учетные записи OpenID, я столкнулся с следующей проблемой: Когда пользователь "A" войдет в систему (впервые) через "учетную запись Google", то все, что он делает, будет связано с учетной записью Google. Когда он вернется и НЕ нажимает "Подпись для входа в аккаунт Google", а скорее "Yahoo Signin", он будет подписан, но создаст/получит новую учетную запись, связанную с Yahoo. Все, что он сделал с учетной записью Google, похоже, потеряно. Просто выписывая каждому пользователю "openID indepedant и уникальное имя пользователя" (без пароля) на моем сайте, не работает: как будто я прошу об этом уникальном имени пользователя (без пароля) при входе в систему, каждый мог угадать имя пользователя других пользователей и связать OpenID с ними. Но если у меня также будет пароль для этого имени пользователя, чем я оказался там, где мы были в прошлом без openID: тогда я должен выдать пользователю какую-то "основную учетную запись" (с помощью usernam и passwort), что он может, для удобства, ассоциируйте с любым количеством открытых учетных записей. Но по какой причине я имею в этом случае openID? Так как пользователь должен помнить "мой masterpassword и userid" в любом случае...

= > Означает ли это, что openID не "напрямую" поддерживает "свободный выбор" нескольких учетных записей? Если я хочу, чтобы пользователи могли входить в систему (для каждого входа в систему) с помощью произвольной учетной записи openID, это единственный способ сделать это следующим образом:

1.) Пользователь регистрируется через "известную учетную запись openID" = > то, что ничего не нужно делать

2.) Пользователь регистрируется через "неизвестную учетную запись openID" = > "аутентифицировать" пользователя через "неизвестный" openId (например, Yahoo), но когда пользователь возвращается на мою страницу, укажите пользователю, что эта учетная запись openID (Yahoo) неизвестна (= никакая дальнейшая работа не связана с ней = ее как новая учетная запись), и спросите, может ли он войти в последний раз через другую учетную запись и предоставить список поддерживаемых учетных записей openID. Затем пользователь может выбрать одного из поставщиков, которых он использовал в последний раз (например, Google). Затем он помимо уже сделанного логина (с Yahoo), он также должен войти в "более старый" (Google) аккаунт, который он использовал в последний раз. Обе учетные записи затем "связаны друг с другом", и любая работа над более старой учетной записью (Google) теперь может быть доступна также через новую учетную запись openID/Yahoo/login?

Или существует ли другой способ поддержки "нескольких учетных записей OpenID" для ONE USERACCOUNT?

(Причина, по которой я спрашиваю об этом: OpenID давно не известен обычным конечным пользователям. Если я распечатаю большой список с входами из Google, Yahoo в Faceebook, будет много пользователей, которые используют Google для своего первоначального Войдите, но в следующий раз, когда они вернутся, возможно, выберите facebook (так как они просто покинули сайт facebook и его более привлекательный щелчок по значку facebook). Вот как "веб-сайты работали" в течение последних 15 лет: один единственный способ входа в систему: одно имя пользователя - поле ввода и одно поле ввода пароля. Если теперь я распечатаю огромный список учетных записей, в которых у пользователя есть учетная запись с каждым из них, возможно, что логин с разными учетными записями изо дня в день не понимая проблемы, к которой это приведет. Таким образом, идеальным миром было бы то, что пользователь может войти в систему через произвольную учетную запись моего списка openID-Provider и будет иметь все учетные записи, "связанные" друг с другом...

Надеюсь, я был спокоен, чтобы описать, в чем моя проблема.

Я очень ценю твою помощь и идеи (мой я совершенно не понял здесь что-то)

Спасибо, много! Ян

4b9b3361

Ответ 1

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

Ответ 2

Да, пользователю нужно будет войти в систему с обоими.

  • Пользователь регистрируется в первый раз с учетной записью Google, использует приложение и выходит из системы. Приложение создает внутренний логин пользователя (в пользователе пользователя grombeestje) и связывает его с учетной записью Google. (in grombeestje table openid)
  • Позже пользователь зарегистрировался в Yahoo и снова войдет в систему с учетной записью Yahoo. Теперь пользователю предлагается шаг для идентификации с другими службами
    • а. Пользователи выбирают и выбирают учетную запись Google.
    • б. Пользователь входит в систему с учетной записью Google.
    • с. Приложение добавляет идентификатор Google с текущим именем входа.

Кроме того, в любое время, когда пользователь хочет, чтобы он мог добавлять логины в свой профиль и идентифицировать его другие открытые идентификаторы, такие как Blogger, Facebook и т.д. Если он создал разные логины (в пользователе grombeestje table) с этими учетными записями, то он может либо удалите один из локальных логинов (в пользователе пользователя grombeestje) с помощью приложения или объедините их в один.

Ответ 3

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

как

пользователи таблицы

ИДИТЕ ИМЯ

1 PIET

2 KEES

и

таблица openid

OPENID USERID

http://..... 1

http://..... 1

http://..... 2

http://..... 2

Ответ 4

Похоже, вам нужно заставить пользователя войти в систему с ними, чтобы соединить их вместе.