Как работает модель SSO Stack Overflow? - PullRequest
1 голос
/ 07 декабря 2011

Просто интересно, как в Stack Overflow используется единый вход в домены.Я полагаю, что это что-то с Apache, скорее всего, так как куки не проходят через домен.Вот отличный пример этого в действии, если вы не знаете, о чем я пишу.

  1. Полностью щелкните свое имя пользователя вверху страницы
  2. Прокрутите страницу вниз и выберите другую «учетную запись», отличную от переполнения стека (например, SuperUser)

Если вы посмотрите, вы все еще вошли в систему как пользователь.В частности, вы.

Это интересная вещь, мы можем проголосовать за тот факт, что Stack передает куки, так как они делают недействительными междоменный домен, что вызывает вопрос о том, что именно они делают, чтобы вы вошли в междоменный домен.?Это трюк с изображением (я слышал об использовании gif для передачи информации), это связано с OpenID или с чем-то другим.

Я знаю, что существует несколько решений SSO, таких как JOSSO, OpenSSO, CAS, Shibboleth и многих других.Я очень ценю беспроблемный характер переполнения стека и просто любопытно, если кто-нибудь знает об их реализации.

Ответы [ 2 ]

2 голосов
/ 07 декабря 2011

Они не делятся информацией о полномочиях. Вы должны войти в систему отдельно на каждом сайте. Если вы выйдете из суперпользователя, вы все равно будете зарегистрированы в stackoverflow.

Проверьте ваши куки, у вас есть один, который называется usr для каждого домена.

0 голосов
/ 09 мая 2014

Возможно, еще в 2011 году stackexchange не имел этой функции, но теперь она существует.Если вы войдете в систему stackoverflow.com, а затем перейдете к serverfault.com и нажмете 'log in', вы автоматически войдете в систему (учитывая, что вы являетесь членом stackoverflow.com и serverfault.com).

Это достигается с помощью Ajax, шифрования на стороне сервера и отметки времени.Так что никакой магии.

Существует специальный домен stackauth.com, который отслеживает SSO обмена стека с помощью запросов Ajax, таких как: https://stackauth.com/auth/global/read?request=8mxxNKQLxiYWd01AQO7D24eF9YSzd62Q5MyLlZhLmdzh0qGz6sOVlJAyC3oj%2B5b4PeVEH8J4x51g0oyiKi2FMQ%3D%3D&nonce=YZRsUwAAAAAMvr%2F34zkmOA%3D%3D

...