2010-01-19 4 views
3

У меня есть приложение с внутренним SSO, реализованное с его сайтами-сестрами; используя реализацию CAS. Он отлично работает и обеспечивает плавный переход для пользователя между сайтами. (Хотя при первом посещении каждого сайта пользователь должен предоставить некоторые базовые данные каждому сайту).SSO, Facebook connect, слияние профиля пользователя

Теперь мы хотим продолжить реализацию и подключить фейкбук или, если хотите, открыть идентификатор RPX. Проблема в том, что в настоящее время система предполагает, что идентификатор электронной почты пользователя уникален. Поэтому следующие проблемы:

  1. Если мы позволим подключиться к facebook, то идентификатор электронной почты больше не может быть уникальным. Чтобы удалить это ограничение, было бы слишком дорого.
  2. Если мы разрешили пользователю входить в систему с помощью подключения к facebook, что и хранит для него другой профиль пользователя; проблема возникает, когда он отклоняется от сестринского сайта? Как мы отслеживаем профиль пользователя без слияния. Или, даже если мы объединились, мы не можем аутентифицировать его, не забирая у него конкретные полномочия.
  3. Предполагая, что он вошел в приложение SSO и facebook connect; если мы всегда отдаем SSO приоритет; это по существу означает, что потоки подключения facebook должны быть скрыты от зарегистрированного пользователя; и это будет означать плохой пользовательский опыт.

Мне просто интересно, может быть, другие люди также внедрили facebook для подключения или открытия идентификатора на своих сайтах; как они справляются с слиянием пользователей; особенно если у вас есть собственный SSO, который уже присутствует на сайте.

Приветствия

+0

Помогла ли вам помощь в решении вашего вопроса, или все еще остались непогашенные вопросы? – jayshao

+0

У вас получилось? Я хочу сделать то же самое, поэтому любая обратная связь будет высоко оценена. – Jim

ответ

1

Если вы используете CAS вы, вероятно, хотите реализовать пользовательский CredentialsToPrincipalResolver, который принимает OpenID/facebook подключения, смотрит на атрибут электронной почты, и пытается решить с существующей учетной записью, если нет - то, как вам используйте внешнюю систему единого входа в качестве учетных данных, как и любой другой токен (скажем, x509 или тому подобное).

Смежные вопросы