Используйте POSTMAN для аутентификации на OPENID сервере - PullRequest
0 голосов
/ 21 января 2020

Я новичок в OpenID и OAuth 2.0.

У меня есть собственный API (он не в ядре. net, а в. net 4.6), и я пытаюсь использовать Почтальон , отправив запрос с токеном доступа для доступа к ресурсу [Authorize] в моем собственном приложении API.

API настроен для вызова сервер OpenID в неявном режиме, поэтому я могу получить access_token и использовать его от другого клиента.

У меня нет проблем при отладке приложения; он аутентифицируется на сервере OAUTH и сохраняет состояние, но по какой-то причине, когда я пытаюсь отправить запрос на ресурс моего API, он все еще перенаправляет меня на страницу аутентификации сервера OAUTH, как будто я не вошел в систему .

Это автозагрузка в моем API:

    public void ConfigureAuth(IAppBuilder app)
    {
        app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = "Cookies",
            CookieName = "AuthCookieCoolApp",

        });

        app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
        {
            Authority = OidcAuthority,
            ClientId = OidcClientId,
            //ClientSecret = OidcClientSecret,
            GetClaimsFromUserInfoEndpoint = true,
            PostLogoutRedirectUri = OidcRedirectUrl,
            RedirectUri = OidcRedirectUrl,
            // ResponseType = OpenIdConnectResponseType.Code,
            Scope = OpenIdConnectScope.OpenId,
            RequireHttpsMetadata = false,
            ResponseType = OpenIdConnectResponseType.CodeIdTokenToken,
            Notifications = new OpenIdConnectAuthenticationNotifications
            {
                MessageReceived = notification =>
                {
                    var message = notification.ProtocolMessage;
                    var accesstoken = message.AccessToken;
                    return Task.FromResult(0);
                }
            }
        });
    }

Возможно, это как-то связано с файлами cookie, но я не уверен.

Дело в том, Это прекрасно работает, когда я отлаживаю свое приложение asp. net: конечные точки, отмеченные атрибутом [Authorize], разрешены только при аутентификации на сервере OAuth. Но по какой-то причине я не могу использовать это от Почтальона:

Сначала я отправляю этот запрос, чтобы получить access_token:

enter image description here

Затем я пытаюсь использовать тот же полученный токен доступа в другом запросе, вызывающем метод [Autorize] моего API, но он перенаправляет меня на страницу входа в OAuth-сервер:

enter image description here

Я, вероятно, что-то неправильно устанавливаю в API, не знаю, что.

Кто-нибудь испытывал что-то подобное?

1 Ответ

2 голосов
/ 21 января 2020

Заголовок authorize выглядит подозрительно. Обычно для аутентификации используется заголовок Authorization. Но у вас может быть пользовательская реализация, где заголовок authorize действителен.

...