DNOA OpenID + OAuth для Google с локального хоста и общедоступного сайта терпят неудачу - PullRequest
0 голосов
/ 12 марта 2012

Я использую DNOA для аутентификации + авторизации с помощью Google на моем веб-сайте.

http://ugi -2.apphb.com / Authentication.htm

Когда я запускаюна локальном хосте я получаю эту ошибку

return_to 'http://localhost:8976/Register/Login' not under realm 'http://anonymous/'.

из этого куска кода:

 private void HandleAuthNullResponse(IAuthenticationResponse authResponse)
        {
            // Google requires that the realm and consumer key be equal,
            // so we constrain the realm to match the realm in the web.config file.
            // This does mean that the return_to URL must also fall under the key,
            // which means this sample will only work on a public web site
            // that is properly registered with Google.
            // We will customize the realm to use http or https based on what the
            // return_to URL will be (which will be this page).

            var consumer = new WebConsumer(GoogleConsumerHelper.ServiceDescription, mConsumerTokenManager);

            //Realm realm = "http://localhost:8976/";
            Realm realm = System.Web.HttpContext.Current.Request.Url.Scheme + Uri.SchemeDelimiter + consumer.ConsumerKey + "/";
            IAuthenticationRequest authReq = GoogleConsumerHelper.RelyingParty.CreateRequest(GoogleConsumerHelper.GoogleOPIdentifier, realm);

ошибка соответствует как-то, что комментирует DNOA

Это было странно, какЯ видел другой код, который работает для localhost, но гораздо менее структурированный.

Затем я повернулся на сайт Google и увидел:

Регистрация вашего веб-приложения

Естьтри уровня регистрации:

  1. Незарегистрированный: приложение не распознается Google.На странице «Запрос на доступ», которая предлагает пользователям разрешить или запретить доступ к вашему приложению, это предупреждение будет выделено желтым цветом: «Этот веб-сайт не зарегистрирован в Google. Мы рекомендуем вам продолжить процесс, только если вы доверяете этому месту назначения».

  2. Зарегистрировано: ...

  3. Зарегистрировано с повышенной безопасностью: ...

Регистрациянеобязательно, но рекомендуется....

Я даже пытался опубликовать в appHarbor, и это не помогло (там еще нет логов)

Как я могу это решить?

1 Ответ

0 голосов
/ 17 марта 2012

Сообщение об ошибке вы видите, потому что спецификация OpenID требует, чтобы URL return_to был производным от URL области, и, очевидно, в вашем случае это не так. http://localhost/ нигде не попадает под http://anonymous/. Если вы задали для своей области фактический корневой URL своего сайта, чтобы return_to находился под ним, эта ошибка должна исчезнуть.

Мне было бы интересно посмотреть документацию от Google, в которой говорится, что она принимает царство http://anonymous/ и return_to для чего-либо, кроме анонимного.

...