У меня есть три приложения, а именно (IdentityServer4 App, .Net Core2.0 WebApp, .NetCore2.0 WebAPI)
Когда я открываю веб-приложение, если оно не аутентифицировано, оно переходит на сервер идентификации, где я предоставляю учетные данные. После успешной аутентификации он возвращается в веб-приложение с необходимыми файлами cookie. Пока все хорошо.
Теперь в веб-приложении я звоню в веб-приложение (файлы cookie устанавливаются сервером идентификации в веб-приложении), но каждый раз он возвращается как 401-й неавторизованный.
Пример кода в веб-приложении:
services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, o =>
{
o.Cookie.Name = Config.CookieName;
o.Cookie.SameSite = SameSiteMode.None;
})
.AddOpenIdConnect(OpenIdConnectDefaults.AuthenticationScheme, options =>
{
options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.Authority = Config.IdentityUrl;
options.RequireHttpsMetadata = false;
options.ClientId = Config.ClientId;
options.SaveTokens = true;
});
И пример кода, используемый в WebAPI в методе настройки сервиса ConfigureServices:
services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, o => {
o.Cookie.Name = Config.CookieName;
o.Cookie.SameSite = SameSiteMode.None;
o.Events = new CookieAuthenticationEvents()
{
OnRedirectToLogin = redirectContext =>
{
redirectContext.HttpContext.Response.StatusCode = StatusCodes.Status401Unauthorized;
return Task.CompletedTask;
}
};
})
.AddIdentityServerAuthentication(options =>
{
options.Authority = Config.IdentityUrl;
options.RequireHttpsMetadata = false;
options.ApiName = Config.ApiName;
});
также у меня есть app.UseAuthentication()
метод в Configure
метод
То, что я чувствую, связано с чем-то с идентификатором сессии. Если это так, то, пожалуйста, помогите, если нет, то, что вы могли бы разглядеть как не правильно, пожалуйста, помогите.
Я проследил журнал, который показывает только следующее:
Cookie не был аутентифицирован. Сообщение об ошибке: сбой снятия защиты с билета.
Файл cookie для аутентификации был отправлен.
Буду признателен за любую помощь.