Могу ли я использовать расширение для передачи логина и пароля провайдеру OpenID? - PullRequest
0 голосов
/ 26 июля 2011

Будет страница входа через OpenID, контролируемая расширением. Могу ли я попросить URL-адрес и передать расширение, а затем передать его с помощью расширения? Если нет, то какие данные можно передавать в OP из RP с помощью расширения? Если да, то насколько он масштабируемый, мне нужно написать отдельный код каждого OP или мне поможет стандарт? Также в маловероятном случае проблемы XY - мне нужны какие-то данные, которые позволят мне аутентифицировать пользователя OpenID в автономном режиме (после хотя бы одного успешного входа в систему онлайн). Поэтому, если бы я был одним из тех, кто предоставил поля ввода логина и пароля, я мог бы использовать хэш пароля пользователя и использовать его для автономной аутентификации. И да, мне нужно использовать OpenID, а не другую систему, потому что это требование. Извините, это какая-то ужасная проблема.

1 Ответ

1 голос
/ 27 июля 2011

Я не думаю, что вы должны передавать идентификатор пользователя / пароль провайдеру OpenID (или, по крайней мере, не пароль).Идея OpenID заключается в том, что провайдер заботится о входе в систему, поэтому приложение web , использующее OpenID, не будет знать учетные данные для входа.OpenID предоставляет вам некоторую информацию авторизации , такую ​​как никнейм, полное имя, адрес электронной почты и т. Д. Эта информация в сочетании с OpenID самого пользователя должна быть достаточной, чтобы предоставить вам уникальную аутентификацию для этого пользователя безнеобходимо иметь пароль.

Ваше приложение должно разрешить пользователю переходить на страницу поставщика OpenID, вводить там свои учетные данные, и после аутентификации вы получите ответ от OpenID, указывающий, прошла ли аутентификация успешно, и впоследствиипредоставление вам информации о пользователе.

Обновление

Как я уже упоминал в моих комментариях: стандарт OpenID не определяет способ, которым вы можете отправить пароль поставщику OpenID.Таким образом, вы не можете использовать стандарт OpenID так, как вы его себе представляете.

Обновление 2.0

Давайте возьмем myOpenID , например: для использования myOpenID в качествепровайдеру OpenID вы должны зарегистрировать свой домен с помощью OpenID.Кроме того, вы можете включить OpenID для своего сайта, связавшись с Янрианом (владельцами myOpenID), но я собираюсь сказать, что вам все равно придется зарегистрировать веб-сайт у них.В любом случае у вас должна быть целевая страница в вашем домене или на вашем веб-сайте, которая принимает ответ аутентификации от поставщика OpenID (в данном случае myOpenID).Итак, давайте посмотрим, что требуется:

  1. Вы должны подделать веб-браузер при отправке веб-запроса поставщику myOpenID.
  2. В этом веб-запросе вы заполнилиформа, которая принимает пароль клиента (опять же, вы должны подделать клиент, делающий это).
  3. У вас должна быть какая-то служба, работающая на веб-сайте, зарегистрированном у поставщика OpenID (например, myOpenID).
  4. Вам нужно будет отправить сообщение (HTTP) службе, на которую вы ожидаете ответ аутентификации для определенного пользователя (и предоставить ему способ перезвонить вам, когда пользователь аутентифицирован).
  5. Эта служба будет принимать любой входящий ответ проверки подлинности от поставщика OpenID.
  6. Служба сопоставит эту проверку подлинности с идентификатором пользователя, которого вы сказали ожидать на шаге 4.
  7. Служба отправит вашему приложению ответ аутентификации (обратный вызов).
  8. Вы должны принять ответ аутентификации от этого сервисаe.

Самой сложной частью, вероятно, будут этапы 1 и 2, но в Интернете должно быть множество обучающих программ, которые могут показать вам, как это сделать (извините, у меня не было времени искать конкретныеиз них).

В любом случае, вот как я могу представить, что вы можете сделать это, но это далеко не тривиально, и я никогда не видел, чтобы это было сделано раньше.

ЧастьПричина, по которой OpenID так популярен, заключается именно в том, что людям не нужно делиться своими учетными данными с поставщиком услуг (т. е. вашим приложением), они только делятся им с поставщиком OpenID.Другая вещь, о которой вы должны подумать, - согласны ли пользователи использовать OpenID так, как вы хотите, чтобы они его использовали. Другими словами, одна из главных причин, почему люди используют провайдеров OpenID, заключается в том, что они избегают делать именно то, что вы просите их: дать вам свой пароль!

Обновление 3.0

Вы можете зарегистрировать свой домен с помощью myOpenID, перейдя на страницу регистрации нового домена: https://www.myopenid.com/new_domain

...