Cookie базирующийся SSO

+1 для pico/nano - легкий вес, сделали задание, хорошая справка

20
задан frengo 23 November 2009 в 16:19
поделиться

5 ответов

Это невозможно. Файлы cookie уникальны для каждого домена, и один домен не может читать файлы cookie другого домена.

15
ответ дан 30 November 2019 в 00:27
поделиться

I have done something similar. There is a PHP application where the user logs in, the system contact a web service and then the service checks the user's credentials on the Active Directory. When the user is authenticated, his PHP session is stored in the DB. Another web application can read the PHP session from the cookies and uery a web service in the PHP applicaiton, the PHP application check the session in the database and return the user id. In this way I have a SSO using SOA.

Do not rely on the user id stored in the browser, is a security error, at least encrypt the id.

The best solution would be to put the login form and session storage in the same application, then this application can provide services to other applications.

And use HTTPS for the kind of infomation exchange.

The cookies can be read only if the belongs to the same domain, for instance:

intranet.example.com crm.example.com example.com/erp

3
ответ дан 30 November 2019 в 00:27
поделиться

Here is a solution (which will hopefully get heavily scrutinized by security gurus on here):

Have each domain store user data in a similar cookie, and when a user want to jump from one domain to another without authenticating themselves on the new domain, provide a "jumplink" with an encrypted token in the query string. The new domain would decrypt the cookie, and figure out who the user is, then issue them a new cookie for that domain. You would want the "jumplink" to have a very short expiration date, so I would not generate them right into the page, but generate links to a "jumplink" generator and re-director.

This might not be necessary, but the receiving page for the "jumplink" could make a web service call back to the originating domain, to verify the authenticity of the encrypted token and the whether it's expired.

I think this solution would be susceptible to man-in-the-middle attacks (not sure if it would be more so than other auth mechanisms which are currently popular), but you could incorporate a client MAC address and IP address into the encrypted token for extra security.

0
ответ дан 30 November 2019 в 00:27
поделиться

Рекуррентные нейронные сети, сокращенно RNN (хотя следует помнить, что RNN часто используется в литературе для обозначения случайных нейронных сетей , которые фактически являются частный случай Recurrent NN), бывают разных «вкусов», что заставляет их проявлять различное поведение и характеристики. В целом, однако, эти многие оттенки поведения и характеристик коренятся в доступности входных данных [обратной связи] для отдельных нейронов . Такая обратная связь исходит от других частей сети, будь то локальных или удаленных, с того же уровня (включая в некоторых случаях «себя») или даже на разных уровнях (*). Информация обратной связи, которую он рассматривает как «нормальный» ввод нейрона, может затем влиять, по крайней мере частично, на его вывод.

В отличие от обратного распространения , которое используется на этапе обучения сети с прямой связью с целью точной настройки относительных весов различных соединений [только с прямой связью] , Обратная связь в RNN представляет собой истинный вход для нейронов, к которым они подключаются.

Одним из способов использования обратной связи является , чтобы сделать сеть более устойчивой к шуму и другим недостаткам на входе (то есть вход в сеть в целом). Причина этого в том, что в дополнение к входам, «непосредственно» относящимся к сетевому входу (типы входных данных, которые присутствовали бы в сети прямого распространения), нейроны имеют информацию о том, что другие нейроны «думают». Эта дополнительная информация затем приводит к изучению Хебба , т.е. идея о том, что нейроны, которые [обычно] срабатывают вместе, должны «поощрять» друг друга срабатывать. На практике этот дополнительный ввод от соседних нейронов с "одинаковым возбуждением" (или соседних с отрицательным сигналом) может побудить нейрон срабатывать, даже если его входы без обратной связи могли быть такими, что он не сработал (или сработал менее сильно, в зависимости от типа сети).

Примером этой устойчивости к недостаткам ввода является ассоциативная память , обычное использование RNN. Идея состоит в том, чтобы использовать информацию обратной связи для «заполнения пробелов».

Еще одно родственное, но отличное использование обратной связи - с тормозными сигналами , посредством которых данный нейрон может узнать, что, в то время как все остальные его входы побудил бы его выстрелить, конкретный вход обратной связи из какой-либо другой части сети обычно указывает на то, что каким-то образом другим входам нельзя доверять (в данном конкретном контексте).

Еще одно чрезвычайно важное использование обратной связи состоит в том, что в некоторых архитектурах она может ввести в систему временной элемент . Конкретный вход [обратной связи] может не столько проинструктировать нейрон о том, что он «думает» [сейчас], но вместо этого «напомнить» нейрону, что, скажем, два цикла назад (какие бы циклы ни представляли) состояние сети (или одно из его подсостояния) было "X". Такая способность «запоминать» [обычно] недавнее прошлое является еще одним фактором устойчивости к шуму на входе, но ее основной интерес может заключаться во введении «предсказания» в процесс обучения. Этот ввод с задержкой по времени можно рассматривать как прогнозы из других частей сети: «Я слышал шаги в коридоре, ожидаю услышать дверной звонок [или шарканье клавиш]».

(*) Кстати, такая широкая свобода в «правилах», которые диктуют разрешенные соединения, будь то обратная связь или прямая связь, объясняет , почему существует так много разных архитектур RNN и их вариаций). Еще одна причина такого множества различных архитектур заключается в том, что одна из характеристик RNN заключается в том, что они не так легко поддаются обработке, математически или иначе, по сравнению с моделью с прямой связью. В результате, движимые математической проницательностью или простым методом проб и ошибок, пытаются опробовать множество различных возможностей.

Нельзя сказать, что сеть обратной связи - сплошные черные ящики, на самом деле некоторые из РНС, такие как Сети Хопфилда , довольно хорошо изучены. Просто математика обычно более сложна (по крайней мере, для меня ;-))

Я думаю, что вышеизложенное, как правило (слишком часто!), Касается вопросов пожирающего элизиума (ОП) о « что делает RNN вместо », и « общие задачи, для которых они используются ». Чтобы многие могли дополнить эту информацию, вот неполный и неофициальный обзор приложений RNN. Сложность составления такого списка многочисленна:

  • перекрытие приложений между сетями прямого распространения и RNN (в результате это скрывает специфику RNN)
  • часто узкоспециализированный характер приложений (мы либо остаемся в с такими слишком банальными понятиями, как "классификация" Вам действительно не нужен «SSO-сервер» для реализации единого входа. Довольно легко создать полезную нагрузку, которую распознают оба приложения. Я видел специальные решения SSO, которые передают полезную нагрузку с использованием XML через HTTPS.

2
ответ дан 30 November 2019 в 00:27
поделиться

Существует простое решение без использования сервера sso, но не с одним общим файлом cookie, поскольку мы знаем, что файлы cookie не используются совместно между доменами.

Когда пользователь аутентифицируется на сайте-a .com, вы устанавливаете cookie в домене site-a.com. Затем на site-b.com вы связываете динамический javascript с site-a.com, сгенерированный серверным скриптом (php и т. Д.), У которого есть доступ к созданному файлу cookie, а затем копируете тот же файл cookie на site-b.com. на стороне клиента с помощью js. Теперь оба сайта имеют один и тот же файл cookie, без необходимости запрашивать у пользователя повторный вход.

Вы можете зашифровать / закодировать значение файла cookie, используя метод, который как site-a, так и site-b знают, как декодировать, чтобы site-b сможет проверить свою копию cookie. Используйте общий общий секрет, без которого невозможно будет кодировать или декодировать.

Вы видите, что при загрузке 1-й страницы site-b.com файл cookie отсутствует, поэтому, если вы сочтете это необходимым, вы можете перезагрузить страницу после установки файла cookie.

8
ответ дан 30 November 2019 в 00:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: