Как работает аутентификация CAS и Facebook для единого входа? - PullRequest
3 голосов
/ 12 января 2010

У меня есть вопрос, менее относящийся к фактической реализации больше к "как это работает". У нас есть сервер CAS, выполняющий SSO-аутентификацию для нескольких веб-проталов (дочерние проталы). Как CAS проверяет файлы cookie на всех порталах и как выяснить, что пользователь вошел на дочерний сайт.

Также распространяется на тот же вопрос; может кто-нибудь уточнить или указать мне какую-то документацию; как FACEBOOK Connect работает со сторонними файлами cookie? Мой вопрос: 1. Можете ли вы действительно читать сторонние куки? 2. Как ваш сайт узнает (если он использует Facebook Connect), что пользователь вошел в Facebook? 3. Я предполагаю, что JS, предоставленный Facebook, вероятно, подтвердит это; но сможет ли он прочитать эти куки, оставленные Facebook, даже если этот JS включен в мой портал?

Может быть, мне неясно, но это потому, что я не очень разбираюсь в Single Sign на фундаменте. Если бы кто-то мог объяснить мне, как эти вещи взаимозаменяемо работают; Я был бы очень благодарен.

Приветствия

1 Ответ

7 голосов
/ 14 января 2010

Я не уверен насчет Facebook Connect, но при использовании CAS cookie для входа в систему сервера CAS используется только самим сервером CAS. Процесс работает примерно так:

  1. Запрашивающий сайт перенаправляет браузер пользователя на сервер CAS
  2. Сервер CAS делает свое дело, аутентифицирует пользователя (если еще не аутентифицирован), а затем отправляет браузер пользователя обратно на запрашивающий сайт с билетом CAS в строке запроса.
  3. Запрашивающий сайт отправляет HTTP-запрос обратно на сервер CAS для проверки заявки. Если он действителен, то возвращается имя пользователя пользователя, и запрашивающий сайт может войти в него.

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

...