Как связать поставщика OpenID с несколькими базами данных - PullRequest
0 голосов
/ 26 июля 2010

Нужно ли провайдеру OpenID создавать свою собственную базу данных или он может использовать несколько баз данных (например, когда пользователь создает OpenID, пользователь предоставляет пароль, адрес электронной почты из одной из этих баз данных).Я не хотел бы создавать другую базу данных, содержащую информацию от других, я хотел бы написать в них идентификаторы и, возможно, некоторые флаги, которые показывают мне, когда пользователь вошел в систему или нет.Чтобы было ясно, у меня есть приложение веб-почты и приложение для загрузки музыки.Когда пользователь входит в веб-почту, он должен предоставить OpenId только для приложения для загрузки музыки, а затем должен войти в систему. Если он не вошел в почтовое приложение, его следует перенаправить к поставщику (я использую Community ID 1.2.1, написанныйв PHP), где он должен предоставить пользователя и пароль из почтовой базы данных.

Другой вопрос, связанный с первым: если пользователь изменяет свой пароль в одной из этих баз данных после того, как он создал OpenID, идентификатор остаетсягодный к употреблению, верно?

1 Ответ

1 голос
/ 26 июля 2010

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

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

Затем вы можете расширить «пользовательскую таблицу», которая будет у вас в базе данных безопасности, с помощью соответствующей пользовательской таблицы в конкретной базе данных веб-сайта (которая не имеет автоматически увеличиваемого ключа UserID, но ссылается на ключ базы данных безопасности). ). Таким образом, в вашем музыкальном приложении вы можете хранить информацию, такую ​​как «Списки воспроизведения» или другую информацию демографического типа, используемую только вашим музыкальным веб-сайтом, то же самое относится и к вашему веб-сайту электронной почты.

Объедините это с OpenID, и у вас будет очень мощная система для использования на всех ваших сайтах, требующая только одного входа.

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