безопасный логин через JS

D
На сайте с 14.01.2007
Offline
153
652

можно ли организовать OpenId верификацию без перехода на сайт OpenId-провайдера?

Т.е. Сайт А имеет на своей странице форму с логином и паролем от OpenId-провайдера. Пользователь логинится, форма(AJAX) отсылается провайдеру, Сайт А через JS получает информацию, была ли верификация успешной. Можно ли сделать так, чтобы Сайт А ни в коем случае не смог отловить логин и пароль пользователя?

T
На сайте с 20.03.2007
Offline
67
Toy
#1
Можно ли сделать так, чтобы Сайт А ни в коем случае не смог отловить логин и пароль пользователя?

Нет.

Форма принадлежит сайту и он что хочет может читать из неё. Проведите аналогию на людях. Есть человек, который хочет что-то от вас получить, он говорит вам пароль. Вы идете к openid и говорите ему этот пароль - тот вам отвечает может ли пользователь получить что-то или нет. Вы идете назад и говорите пользователю что вам сказал openid. А теперь вопрос, можно ли сделать так, чтобы вы не знали пароля, следуя этому сценарию? :-)

Ragnarok
На сайте с 25.06.2010
Offline
226
#2

Вход через OpenID с точки зрения конечного пользователя

На сайте, назовём его, к примеру, example.com, располагается форма входа, но вместо привычных полей логин и пароль, в ней можно заполнить только одно — поле для ввода OpenID идентификатора. Зачастую рядом с таким полем располагается логотип OpenID.
Чтобы пользователь Вася Пупкин смог пройти OpenID-авторизацию на сайте example.com с помощью своего идентификатора pupkin.openid-provider.org, который он зарегистрировал у провайдера идентификации openid-provider.org, Вася просто на example.com вводит свой OpenID в предлагаемую форму входа.
Сайт зависимой стороны перенаправляет пользователя на сайт провайдера. Сайт провайдера запрашивает у пользователя подтверждение, действительно ли пользователь желает предоставить информацию о своей учётной записи. Если пользователь соглашается, то сайт провайдера перенаправляет пользователя обратно на сайт зависимой стороны. При обратном перенаправлении, провайдер передаст информацию о пользователе зависимой стороне.
Например, OpenID-провайдером является Живой Журнал, поэтому в качестве Open ID можно использовать адрес своего дневника в ЖЖ.

о "Вход через OpenID с точки зрения зависимой стороны" и остальное:

http://ru.wikipedia.org/wiki/OpenID

//TODO: перестать откладывать на потом
D
На сайте с 14.01.2007
Offline
153
#3
Toy:
А теперь вопрос, можно ли сделать так, чтобы вы не знали пароля, следуя этому сценарию?

да в принципе я так и думал, просто надеялся на какой-нибудь фокус типа запечатанного конверта, если оставаться на вашей аналогии;)

Фреймы и прочая нечисть тоже не вариант?

Ragnarok, не поверите, но я это читал:) но в целях "usability" было бы проще, если бы пользователя никуда не надо было посылать

T
На сайте с 20.03.2007
Offline
67
Toy
#4
просто надеялся на какой-нибудь фокус типа запечатанного конверта, если оставаться на вашей аналогии

А что вам мешает открыть этот конверт? :-)

D
На сайте с 14.01.2007
Offline
153
#5

Toy, хотя бы то, что провайдер будет знать, что печать пропала ;)

T
На сайте с 20.03.2007
Offline
67
Toy
#6
хотя бы то, что провайдер будет знать, что печать пропала

Не забыли, что пользователь пишет пароль у вас на глазах? :-)

D
На сайте с 14.01.2007
Offline
153
#7

ок, убедили :)

каким ещё способом можно облегчить жизнь пользователю или программеру OpenId-плугинов для разных CMS?

Как вам такой вариант: на Сайте А JS рисует форму провайдера, на которой есть только логин и кнопка сабмит. При нажатии на кнопку происходят одновременно 2 вещи:

1. Отсылается AJAX запрос к провайдеру

2. Открывается страница провайдера в новом окне

На сайте провайдера пользователь вводит свой пароль и отвечает на запрос от Сайта А.

Ответ от провайдера к Сайту А идёт обратно по AJAX.

Преимущество такого метода:

Не надо хэшей между провайдером и Сайтом А

На Сайте А страница не меняется

При желании можно тут же JS заполнить нужные поля на Сайте А

?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий