Как добавить других поставщиков Open ID в OpenIdRelyingParty? - PullRequest
1 голос
/ 11 января 2010

Я пытаюсь внедрить проверяющую сторону (веб-сайт, над которым я работаю), используя DotNetOpenAuth в ASP.NET MVC. Я использую текущую версию 3.3.1.

Используя включенный образец MVC, я вижу, что класс OpenIdRelyingParty может автоматически распознавать и перенаправлять некоторых провайдеров открытых идентификаторов, таких как myopenid.com и Yahoo, на основе идентификатора, указанного пользователем.

Как заставить OpenIdRelyingParty сделать то же самое для идентификаторов Windows Live / Hotmail и Google Open?

UPDATE

Моя проблема может заключаться в том, что я не понимаю, что такое Open ID, вот что я делаю, может быть, кто-то может объяснить, почему мои ожидания неверны:

  • Когда я ввожу адрес электронной почты Yahoo в качестве открытого идентификатора, он перенаправляется на страницу входа в Yahoo. Круто.

  • Когда я ввожу свое уникальное имя myopenid.com, оно перенаправляется на страницу входа в myopenid.com. Круто.

  • Но когда я делаю то же самое для адреса электронной почты Windows Live, адреса Hotmail или Gmail, я получаю сообщение об ошибке «Не найдена конечная точка открытого идентификатора».

Если Open ID должен быть URL-адресом, то почему работает использование адреса электронной почты Yahoo? Я думал, что это потому, что у класса OpenIdRelyingParty есть некоторый интеллект для сопоставления общих адресов электронной почты с URL-адресами провайдеров ... я что-то здесь упускаю?

Ответы [ 2 ]

2 голосов
/ 11 января 2010

Он работает «автоматически» для myopenid.com и многих других, потому что это фактические поставщики OpenID.

Адреса электронной почты не являются идентификаторами OpenID, но из-за правил синтаксического анализа идентификатора OpenID адреса электронной почты случаются , если доменная часть адреса электронной почты является «идентификатором OP». «yahoo.com» сам по себе является идентификатором OpenID, поэтому любой адрес электронной почты, заканчивающийся на @ yahoo.com, также работает, что вы и видите.

Причина, по которой электронные письма и URL-адреса Gmail и Live ID не работают, заключается в том, что Live ID не является поставщиком OpenID (пока). И идентификатор OP для Gmail, к сожалению, не просто gmail.com. Скорее, это https://www.google.com/accounts/o8/id Серьезно. Это длинный URL. Но если вы введете это значение (или просто tinyurl.com/googop), вы сможете войти в систему, используя свою учетную запись Gmail (или любой Google).

1 голос
/ 11 января 2010

URL, который ваши пользователи вводят в поле OpenID, достаточно для перенаправления (например, http://blowdart.openid.example), при условии, что поставщик OpenID является полным поставщиком OpenID. Вам не нужно делать ничего особенного.

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