Я новичок в 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:
Затем я пытаюсь использовать тот же полученный токен доступа в другом запросе, вызывающем метод [Autorize] моего API, но он перенаправляет меня на страницу входа в OAuth-сервер:
Я, вероятно, что-то неправильно устанавливаю в API, не знаю, что.
Кто-нибудь испытывал что-то подобное?