Я пытаюсь настроить аутентификацию в новом основном приложении dotnet. Я использую IdentityServer, который работает нормально, поскольку он используется для других приложений.
Я получаю сообщение об ошибке, которое не говорит больше, чем «Сбой корреляции». Глядя на вывод в VS2017, я вижу предупреждение немного перед исключением, которое говорит следующее:
Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler:Предупреждение: .AspNetCore.Correlation. Государственная собственность не обнаружена.
Вот моя конфигурация:
public void ConfigureServices(IServiceCollection services)
{
Debugger.Break();
services.AddMvc();
services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie(options =>
{
options.SlidingExpiration = true;
options.Cookie.Name = "MyAwesomeCookie";
options.ExpireTimeSpan = TimeSpan.FromMinutes(30);
})
.AddOpenIdConnect(options =>
{
options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.Authority = IdentityServerConstants.IdentityServerUrl;
options.ClientId = "myclientid";
options.ClientSecret = "supersecuresecret";
//options.CorrelationCookie.Name = "something";
foreach (var s in myScopes)
{
options.Scope.Add(s);
}
options.ResponseType = "code id_token token";
options.CallbackPath = new PathString("/");
options.UseTokenLifetime = false;
options.RequireHttpsMetadata = false;
});
}
Я изменил некоторые значения из соображений безопасности и исключил перехват событий, поскольку считаю, что это не имеет значения.
Я мог отследить его до этого файла: https://github.com/aspnet/Security/blob/dev/src/Microsoft.AspNetCore.Authentication/RemoteAuthenticationHandler.cs
Если последний метод в этом файле возвращает false, вы получаете ошибку «Correlation Failed».
Однако я долго гуглил ошибку и не мог найти, как ее исправить. Я, вероятно, пропустил что-то тривиальное в конфигурации...
Любая подсказка?