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


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

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

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

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

1.) Пользователь входит в систему через "известный openID аккаунт" = > thats fine ничего не нужно делать

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

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

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

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

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

Большое вам спасибо! Ян

4 22

4 ответа:

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

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

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

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

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

Как

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

ID NAME

1 PIET

2 ки

И

Таблица openid

OPENID USERID

Http://..... 1

Http://..... 1

Http://..... 2

Http://..... Два

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