SSO - Совместно использовать одну пользовательскую таблицу между несколькими веб-сайтами или как-то синхронизировать несколько пользовательских таблиц? - PullRequest
1 голос
/ 07 октября 2011

Я работаю над решением единой регистрации для двух сайтов ASP.NET MVC3.Сайты находятся на отдельных поддоменах.Я использую Аутентификацию по формам и пока у меня все работает хорошо.Когда я захожу на a.example.com, я автоматически захожу и на b.example.com.Приятно.

Каждое приложение имеет свою собственную базу данных.

У меня такой вопрос: хочу ли я синхронизировать определенную информацию о пользователях между двумя сайтами (например, дату последней активности или предпочтения пользователя)) тогда я должен иметь таблицу User в обеих базах данных и как-то поддерживать их синхронизацию, или только в базе данных a.example.com должна быть таблица User, а b.example.com каким-то образом читает и пишет в нее?

Спасибоза ваш совет.

Редактировать: Благодаря Адаму я склоняюсь к хранению всех пользовательских данных в отдельной базе данных.Я передам имя пользователя и идентификатор аутентифицированного пользователя каждому приложению в файле cookie аутентификации.Кто-нибудь может дать какой-нибудь совет относительно сохранения ссылочной целостности между двумя базами данных?

1 Ответ

0 голосов
/ 07 октября 2011

Большинство SSO-решений, которые я видел, имеют центральный портал accounts, где пользователи могут сохранять настройки, менять адрес электронной почты и т. Д.

Подумайте, Google:

  • google.com / читатель
  • google.com / аналитика
  • google.com / счета

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

В реальном SSO запрос аутентификации перенаправляет в центральную систему аутентификации (т.е. google.com/accounts), аутентифицирует и затем перенаправляет в службу, которая запросила аутентификацию.

Из вашего описания звучит так, как будто у вас есть отдельная аутентификация для каждого сайта / службы, но пользователь db является общим.

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