SSO, Facebook connect, объединение профиля пользователя - PullRequest
3 голосов
/ 19 января 2010

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

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

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

Мне было просто интересно, может быть, другие люди также использовали Facebook connect или open id на своих сайтах; как они справляются со слиянием пользователей; особенно если у вас есть собственный SSO, уже присутствующий на сайте.

Приветствия

1 Ответ

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

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

...