Как войти, не выходя из RP, показывая окно входа OP в iframe? - PullRequest
0 голосов
/ 25 июня 2009

Как войти, не выходя из RP, показывая окно входа OP в iframe?

Я использую Openid Provider для входа на мой сайт.

как реализовать окно входа в систему внутри iframe.

Ответы [ 3 ]

2 голосов
/ 25 июня 2009

При использовании iframe чрезвычайно не одобряется, так как пользователь будет вводить свои учетные данные на странице, которая выглядит , как будто это ваш RP, но якобы вместо этого их OP. Он учит пользователей быть фишингом.

Если вы все равно собираетесь использовать iframe, нужно проделать совсем немного специальной работы. Однако есть несколько подходов, которые вы можете использовать. Если вы берете идентификатор OpenID от пользователя на странице и отображаете iframe, основанный на вводимых пользователем данных, то, вероятно, самый простой способ - использовать JavaScript, когда пользователь нажимает «Login» для создания iframe и направляет его на http://yoursite.com/redirect.aspx?openid=userSuppliedIdentifier. На этой странице будет выполнено обнаружение OpenID для идентификатора и выполнено стандартное перенаправление на OP, которое будет ограничено рамкой iframe, поскольку именно отсюда поступил запрос. Openid.return_to, который вы отправляете в OP, должен быть на специальной странице, которая знает, как «вытащить» iframe обратно в ваше главное окно. Это действительно очень похоже на подход к всплывающему окну, который я укажу на демонстрацию ниже, но вместо всплывающего окна вы делаете это в iframe.

Вместо iframe рекомендуется использовать всплывающее окно, если вы не хотите на мгновение отсылать пользователей с вашего сайта. Одним из таких примеров является пример входа в Ajax DotNetOpenAuth , но есть и другие способы сделать это. Всегда сложно заставить его работать в разных браузерах и работать безопасно. Нам нужно знать, какую веб-платформу вы используете (ASP.NET, PHP, Perl, Python и т. Д.), Прежде чем идти дальше.

0 голосов
/ 22 июня 2010

Я вижу, что вы обсуждаете использование iframes для проверки подлинности OP. Рассматривали ли вы тот факт, что перехват кликов становится возможным при использовании фреймов? Фактически, многие OP не позволяют включать свои страницы в iframe, например VeriSign, Yahoo, myOpenID и т. Д. Они выделяются из фреймов, используя HTTP-заголовок X-FRAME-OPTIONS или JavaScript, например:

if (top.location! = Location) { top.location = self.location; }

Посмотрите на http://ajaxian.com/archives/busting-framebusters-clickjacking-is-still-a-big-issue для получения дополнительной информации.

0 голосов
/ 27 ноября 2009

(В ответ на ответ Эндрю Арнотта) Меня беспокоит, что всплывающие окна считаются нормой для перенаправлений. Это правда, что Facebook принял этот подход, но я не думаю, что это окончательное решение. Из UI / UX pov в других приложениях мы пытались отойти от всплывающих окон в пользу встроенных типов взаимодействия с пользователем. (всплывающие окна, например, очень раздражают). Всплывающие окна в целом только усугубляют. Отсюда сторонние виджеты библиотеки javascript, такие как Thickbox / Lightbox / Shadowbox. Эти решения позволяют загружать контент iframe.

Plaxo и Google предоставили эксперимент, показывающий что-то вроде 92% -ной нормы возврата для пользователей, которые вошли в систему с помощью процесса OpenID с двумя щелчками мыши, поэтому вопрос не о скорости возврата, и да, однако, всплывающие окна могут работать в этом сценарии. ..

То, что я думаю, не было решено - это уровень принятия, и это сводится к простоте использования и пользовательскому опыту, и большинство инженеров, похоже, упускают из виду тот факт, что пользователи полностью оттеснены всплывающие окна.

Это правда, что фишинг - это проблема, но я думаю, что ответственность и бремя для повышения безопасности лежит на разработчике, а не на пользователе. По этой причине я все еще считаю, что встроенный опыт является лучшим, и, к сожалению, iframes - единственная методология, которая в настоящее время применима. Однако существуют способы предотвращения фишинга.

...