2010-01-19 2 views
4

У меня есть приложение, в котором я показываю некоторые вещи в javasctip-модалях, используя jquery. It req. пользователь для входа в систему для определенных потоков; но мы никогда не оставляем модальных для пользователя.Перекрестный домен с iframe, указывающий на SSO-сервер

Так вот что мы делаем в настоящее время.

  1. Во время пользовательского потока, если необходимо войти в системе пользователя, мы прячем тока DIV и показать логин DIV
  2. Держите скрытый IFRAME с ссылкой на источник, что и в нашем SSO-сервере.
  3. После того, как пользователь отправит форму, мы отправим скрытый iframe на сервер SSO.
  4. При входе пользователя в систему мы продолжаем поток.

Проблема в том, что для входа пользователя в систему существует ошибка. Нам нужно получить коды ошибок из скрытого iframe страницы; но потому что мы не контролируем содержимое внутри iframe, и оно возвращается сервером SSO; мы не знаем, как читать его, поскольку это кросс-домен.

Любые идеи?

ответ

0

До тех пор, пока не выполняется сценарий клиентской стороны из группы единого входа, вам не нужен iframe. Точка использования iframe для обеспечения безопасности - это предотвращение игнорирования AJAX-методами политики единого источника и обхода SSL-шифрования. Ответ заключается в удалении iframe. Запросите данные SSO со стороны сервера и отправьте их клиенту с вашего сервера по мере создания страницы.

+2

Серверу SSO необходимо будет установить файл cookie или прочитать существующий файл cookie, чтобы гарантировать, что пользователь уже не подписан. Я не буду читать cookie другого домена в моем домене, поэтому мне нужен ТОЛЬКО SSO-сервер, чтобы напрямую проверить статус подписанного пользователя. Крайне важно, чтобы у меня был сервер SSO в iframe, чтобы пользовательские учетные данные были представлены непосредственно ему и чтобы он задавал cookie в ответ. Вот как работает CAS в нашем случае. – Priyank

+0

В настоящее время я работаю над очень похожими настройками с удаленным сервером SSO CAS, которые имеют разные клиентские приложения, которые отправляют запросы POST для отправки учетных данных. Я не уверен в том, как использовать iFrames для чтения заданных учетных данных в клиентском приложении и для эффективной аутентификации пользователя локально. Прошло некоторое время, но вы можете поделиться информацией о том, как работает ваша настройка? –

0

Вы не можете обойти ограничения для x-домена, если вы не используете протокол jsonp.

Может ли пользователь просто увидеть ответ об ошибке на странице? Почему у вас есть iframe hidden atm?

Вы пытаетесь тихо войти в систему в другую систему, используя технику iframe?

Несмотря на то, что это может работать на большинстве браузеров - некоторые браузеры не будут передавать файлы cookie в i-frames, что делает этот подход не очень хорошим решением для широкой аудитории.

Сообщите мне, если смогу уточнить.

0

Используйте JSONP для вызова функции, которую вы предотвратили на своем веб-сайте, а затем в iframe вам просто нужно вызвать функцию javascript: «parent.callback()».