2014-01-02 3 views
1

Я новичок в мире SAML-2. Я должен реализовать SAML-2 для нашего веб-продукта с помощью java. Мой коллега предложил следующее решение для внедрения SAML-2.Нужно ли использовать cookie для входа в систему SAML2?

Я просто хотел, чтобы обсудить ли смысл ...

Сценарий: Джон записывает в первый раз, так как SSO был реализован в его компании

  1. Джон указывает свой браузер на TMS
  2. TMS не находит маркер SAML хранится в виде печенья в заголовке запроса от браузера Джона
  3. браузер Джона перенаправляется на стандартный TMS странице входа
  4. Джон вводит его нормальные окна регистрационных данные и хиты ENTER
  5. TMS успешно проверяют подлинность своих полномочий против IdP сервера своей компании, которая в данном случае является ADFS с помощью SAML
  6. Маркер SAML возвращается в TMS и сохранен в браузере Джона как печенье
  7. Джон теперь может использовать TMS

Сценарий B: Джон хочет снова использовать TMS, но закрыл броузер

  1. Джон открывает новый instanc е и указывает его TMS
  2. TMS находит маркер SAML хранится в виде печенья в заголовке запроса от браузера Джона
  3. TMS проверяет, что этот маркер является действительным, и поэтому Джон идет прямо в TMS минуя страницу входа

Мой вопрос - это стандартный или правильный подход? Если мы используем cookie для запоминания маркера SAML, что делать, если пользователь очищает файл cookie или не хочет сохранять cookie? В этом случае пользователь будет направляться на страницу входа каждый раз ...

Есть ли какой-либо ресурс (то есть книжный или онлайн-учебник), который я могу изучить в этой конкретной цели?

Пожалуйста, дайте мне знать ваше предложение.

ответ

0

То, что вы описываете, довольно близко к тому, как федеративный вход работает на платформе .NET. Билет SAML2 считывается при первом получении от Idp, но при последующих запросах Idp не задействован, а скорее cookie.

Однако на .NET маркер SAML2 не хранится в cookie, вместо этого файл cookie содержит идентификационную информацию в форме, подходящей для приложений .NET, чтобы избежать повторного анализа и повторной проверки маркера SAML2 каждый время. Весь файл cookie зашифрован ключом, который знает только сервер, поэтому пользователь не может вмешиваться в него.

0

В вашем сценарии B - пользователь обычно перенаправляется в IDP (и автоматически подписывается без какого-либо взаимодействия с пользователем, если сеанс в IDP все еще активен) вместо повторного использования файла cookie. После ответа от AFDS (шаг 6) приложения обычно хранят информацию об аутентифицированном пользователе в сеансе HTTP и очищают все, как только пользователь выходит из системы или закрывает браузер.

Но ваш подход может определенно работать. В случае, если пользователь очистит файл cookie, вы просто инициализируете новый запрос на аутентификацию SAML в своей ADFS. Главное здесь, что ADFS не должен требовать аутентификации пользователя для каждого запроса, но пока сеанс ADFS остается действительным, он должен немедленно вернуться обратно в TMS с помощью токена SAML, поэтому пользователю обычно необходимо пройти аутентификацию только один раз в в то время как.

Смежные вопросы