Подтвердить что ты не робот

Автоматический одноразовый файл cookie для нескольких доменов - например, Google

Я не понимаю, как Google выполнил следующий механизм единого знака:

  • Я могу войти в gmail, например (я полагаю, это создает cookie с полномочиями)
  • Я открываю новую вкладку и прямо набираю URL-адрес "youtube"
  • Затем я ввожу youtube.

Как этот второй сайт может обнаружить, что я уже вошел в систему. Это разные области. Youtube не может прочитать cookie Gmail.

Все решения, которые я прочитал о Single Sign on, не допускают этого. Клиент всегда запрашивает разрешение на центральное приложение для входа в систему. В моем примере YouTube не знает, что я один и тот же пользователь, зарегистрированный в Gmail (на самом деле он знает, но я не понимаю, как)

Обратите внимание, что я набираю URL-адрес "youtube" вручную. Я не закрываю значок youtube с верхней панели инструментов gmail (в этом случае gmail может передать некоторые параметры auth через URL-адрес, например).

4b9b3361

Ответ 1

cookie устанавливаются в spesific доменах ex:

setcookie(name,value,expire,path,domain) 

Когда вы вошли в систему gmail, перед mail.google.com вы были перенаправлены на accounts.google.com, а затем на mail.google.com, чтобы файлы cookie также были на странице "accounts.google.com".

in this case  the domain is : accounts.google.com 
the path is : "/" 'this is the home path 

когда вы запрашиваете www.youtube.com, тогда вы нажимаете "соединение", которое он запрашивает   accounts.google.com быстро, чтобы вы не могли видеть это перенаправление и проверили, есть ли у вас cookies on accounts.google.com, если он проверяет, являются ли файлы cookie действительными и не истекли или не были запрещены пользователем или... затем он перенаправляет вас на www.youtube.com/signin?loginthisSession=Sessionid 'этот запрос подсчитывает значение cookie сеанса, выловленного из файлов cookie accounts.google.com

последний шаг: www.youtube.com' регистрирует вас и устанавливает свой собственный файл cookie в домене "www.youtube.com" и сохраняет их

так что трюк находится на 302 http Redirect

Ответ 2

Cookies и localStorage могут совместно использоваться между доменами с использованием промежуточного домена. На домашней странице встроен "iframe", который обращается к файлам cookie и отправляет сообщения в основной файл.

mail.google.com и youtube.com могут совместно использовать файлы cookie с помощью accounts.google.es. Откройте Chrome->Inspect->Resources->Local storag e, и вы увидите в accounts.google.com токен аутентификации в формате JWT.

Я подробно описал технические шаги в этом ответе: fooobar.com/questions/288550/.... Также посмотрите https://github.com/Aralink/ssojwt, чтобы увидеть реализацию единого входа с использованием JWT в центральном домене

Ответ 4

Насколько я помню, если я не ошибаюсь, файлы cookie содержат указанное поле, которое содержит домен, который может читать и получать такой файл cookie. Это сделано для того, чтобы некоторые веб-сайты не могли прочитать весь ваш список файлов cookie и сделать свой собственный бизнес. Вы должны уметь видеть, какие сайты могут "видеть" ваш файл cookie gmail.

Исправьте меня, если я ошибаюсь, это должно скомпилировать ответ, приведенный в отношении примера SID и gmail-YouTube.