OIDC AspNetCore OpenIdConnectHandler Корреляция Не удалось найти свойство состояния - PullRequest
0 голосов
/ 09 января 2019

У меня есть сервер аутентификации OIDC на базе Identity Server 4, который позволяет выполнять федерацию с внешним поставщиком удостоверений.

                services.AddAuthentication()
                .AddOpenIdConnect(extIDP.AuthScheme, extIDP.AuthDisplay, options =>
                {
                    options.SignInScheme = extIDP.Options.SignInScheme;
                    options.SignOutScheme = extIDP.Options.SignOutScheme;
                    options.Authority = extIDP.Options.Authority;
                    options.ClientId = extIDP.Options.ClientId;
                    options.ClientSecret = extIDP.Options.ClientSecret;
                    options.ResponseType = extIDP.Options.ResponseType;
                    options.CallbackPath = extIDP.Options.CallbackPath;
                    options.SignedOutCallbackPath = extIDP.Options.SignedOutCallbackPath;
                    options.RemoteSignOutPath = extIDP.Options.RemoteSignOutPath;
                    options.RequireHttpsMetadata = extIDP.Options.RequireHttpsMetadata;
                    options.SaveTokens = true;
                    options.Scope.Clear();
                    options.Scope.Add(IdentityServerConstants.StandardScopes.OpenId);
                    options.Scope.Add(IdentityServerConstants.StandardScopes.Profile);
                    options.Scope.Add(IdentityServerConstants.StandardScopes.Email);
                    options.Scope.Add(JwtClaimTypes.Role);
                });

Откуда extIDP приходит из какой-то конфигурации. Так что это прекрасно работает, но у нас есть клиент с IDP, который не поддерживает режим ответа form_post (который используется по умолчанию в настройках выше), поэтому, если я добавлю дополнительную строку в конфигурацию, чтобы установить для ResponseMode значение «фрагмент», то мы должны быть в порядке, но это не работает.

Я получаю сообщение об ошибке корреляции С подробным ведением журнала на нашем сервере аутентификации мы получаем

Предупреждение. Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler ".AspNetCore.Correlation." государственная собственность не найдена

Обратите внимание, что это происходит при локальном запуске двух тестовых серверов аутентификации, поэтому не имеет ничего общего с проблемами балансировки нагрузки. Я также добавил политику использования файлов cookie, чтобы гарантировать, что она не была вызвана строгой политикой использования файлов cookie. Так что я сейчас немного застрял.

...