Единый вход без файлов cookie в Java - PullRequest
5 голосов
/ 30 сентября 2010

Я продолжаю сталкиваться с этим вопросом от моего менеджера, как будет работать SSO, если клиент отключит куки, но у меня нет ответаВ настоящее время мы используем JOSSO для единого входа.Есть ли у нас какие-либо фреймворки с открытым исходным кодом, которые поддерживают единый вход без использования механизма приготовления.

Ответы [ 2 ]

3 голосов
/ 30 сентября 2010

В отсутствие файлов cookie вам придется встраивать какой-либо параметр в каждый URL-запрос.например, после входа в систему вы назначаете некоторый произвольный идентификатор пользователю и вставляете его в каждую ссылку, такую ​​как http://mydomain.com/main?sessionid=123422234235235.Это может стать довольно грязным, так как каждая ссылка должна быть исправлена, прежде чем она выйдет за дверь, что замедляет ваш контент.Он также имеет последствия для безопасности, ведения журнала и истории сеансов, которые не так уж страшны, когда состояние находится в cookie.

Может быть проще выполнить простой тест cookie для зарегистрированных пользователей и отправить ихстраницу ошибки, если у них не включены куки.

2 голосов
/ 28 февраля 2012

Проект CAS передает «билет» от сервера входа в приложение-потребитель в качестве параметра запроса url, а приложение-потребитель отправляет запрос обратного канала обратно на сервер входа для проверки подлинность билета. Это исключает необходимость использования файлов cookie и, следовательно, работает в разных доменах, хотя и немного «болтливо»

Еще одним, возможно, более надежным решением является использование продукта на основе SAML, который является отраслевым стандартом для междоменного единого входа. Существует пара продуктов с открытым исходным кодом, которые используют SAML, а сам CAS имеет расширение SAML, однако их обычно довольно сложно настроить. Cloudseal также основан на SAML и намного проще в использовании. Сама платформа Cloudseal поставляется как управляемая служба, но все клиентские библиотеки имеют открытый исходный код

Конечно, со всеми этими решениями вы просто передаете контекст безопасности с одного сервера на другой, приложение-потребитель, несомненно, создаст свой собственный локальный сеанс, поэтому вам потребуется использовать перезапись URL вместо файлов cookie

Отказ от ответственности: я работаю на Cloudseal:)

...