Является ли загрузка поставщика OpenID в iframe плохой идеей, если поставщик и RP находятся в одном домене? - PullRequest
5 голосов
/ 11 марта 2012

Здесь есть множество вопросов, где кто-то хочет загрузить страницу входа провайдера OpenID в iframe, а не перенаправлять и заставить провайдера контролировать весь внешний вид страницы входа. По очень веским причинам безопасности (в первую очередь, для борьбы с фишингом) этот запрет запрещен, и большинство провайдеров OpenID отказываются загружаться в пределах iframe.

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

Предложенное решение для этого состоит в том, чтобы просто позволить RP представить страницу входа в систему в iframe, чтобы они могли разместить любой дизайн вокруг поля входа в систему, которое они хотят. В этом сценарии только у провайдера будут размещены только поля «Имя пользователя», «Пароль» и «Логин», «Забыли пароль», «Зарегистрировать новую учетную запись», остальная часть страницы будет находиться на RP, и при этом адрес RP будет оставаться в строка заголовка. Да, не оптимально, но аргумент в том, что «это другой поддомен, но тот же домен 2-го уровня, так что все в порядке».

Я не понимаю, как это могло быть - наличие разных страниц входа в систему для разных приложений по-прежнему делает пользователей более уязвимыми для фишинга и других атак. Я не прав в этом заключении? Каждый вопрос SO по этому поводу, похоже, касается использования внешнего или общедоступного провайдера, и встречный контраргумент, с которым я сталкиваюсь, заключается в том, что эти проблемы не относятся к частному провайдеру, ограниченному сайтами в одном домене.

Ответы [ 2 ]

5 голосов
/ 13 июля 2012

Общие опасения относительно наличия OpenID внутри iframe имеют смысл, даже если вы выполняете роль собственного провайдера.Если какой-либо из ваших компонентов уязвим для внедрения сценариев, существует риск того, что они могут поставить под угрозу учетные данные ваших пользователей, поскольку вы можете получить доступ к данным iframe из родительского окна.-up ) ограничил бы этот риск, поскольку теперь злоумышленнику необходимо внедрить его на страницу входа в систему OpenID, где, по-видимому, нет ошибок при внедрении скрипта.

2 голосов
/ 30 октября 2014

Спустя два года, и я не думаю, что это в настоящее время считается плохой идеей, особенно потому, что существует спецификация OpenId Connect (в настоящее время находится на черновике 21), в которой подробно описывается процесс, с помощью которого iframe должен использоваться для разрешить RP взаимодействовать с OP в iframe.

http://openid.net/specs/openid-connect-session-1_0.html

Я не знаю, сколько времени пройдет, пока это не станет ратифицированным, но это действительно показывает, что это рассматривается как действительный подход к управлению сессиями в RP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...