У меня есть приложение IdentityServer 3, которое заботится об аутентификации / авторизации и проверке токена. У нас есть. net core 3.0 web api, который обрабатывает функции управления пользователями и ролями посредством запросов, поступающих из приложения angular js на клиентской стороне. В мире http все работало нормально. Как только мы начали использовать самозаверяющий сертификат и превратили все эти приложения (IdentityServer3, Net Базовое приложение (которое взаимодействует с IdentityServer для вещей, связанных с идентификацией пользователя и проверкой токенов) и angular js) с HTTPS на IIS. Мы начали сталкиваться с проблемой, так как identityserver3 помогает аутентификации пользователей, но позже, когда пользовательский интерфейс (angular приложение) пытается отправить запрос GET в. net основное приложение, которое обычно получает данные вошедшего в систему пользователя, не работает, Это. net ядро приложения взаимодействует с IdentityServer для каждого веб-API-запроса для проверки токена, оно выдает ошибку 404. Ниже приведена ошибка из журналов.
04/16/2020 14: 15: 59.335 -04: 00 [Ошибка] IDX20803: Невозможно получить конфигурацию из: '[PII скрыт. Для получения дополнительной информации см. https://aka.ms/IdentityModel/PII.] '. System.InvalidOperationException: IDX20803: Невозможно получить конфигурацию из: '[PII скрыт. Подробнее см. https://aka.ms/IdentityModel/PII.] '. ---> System.IO.IOException: IDX20804: невозможно получить документ из: '[PII скрыт. Подробнее см. https://aka.ms/IdentityModel/PII.] '. ---> System. Net .Http.HttpRequestException: не удалось установить соединение SSL, см. Внутреннее исключение. ---> System.Security.Authentication.AuthenticationException: удаленный сертификат недействителен в соответствии с процедурой проверки. в System. Net .Security.SslStream.StartSendAuthResetSignal (сообщение ProtocolToken, AsyncProtocolRequest asyncRequest, исключение ExceptionDispatchInfo) в System. SslStream.StartSendBlob (входящий Byte [], счетчик Int32, AsyncProtocolRequest asyncRequest) в System. Net .Security.SslStream.ProcessReceivedBlob (буфер Byte [], количество Int32, AsyncProtocolRequest asyncRequest * .Sec .Sec.) .Sec. StartReadFrame (буфер Byte [], readBytes Int32, asyncProtocolRequest asyncRequest) в System. Net .Security.SslStream.StartReceiveBlob (буфер Byte [], asyncProtocolRequest asyncRequest) в System. Net. AsyncProtocolRequest asyncRequest) в System. Net .Security.SslStream.StartSendBlob (Byte [] входящий, число Int32, AsyncProtocolRequest asyncRequest) в System. Net .Securit y.SslStream.ProcessReceivedBlob (буфер Byte [], число Int32, AsyncProtocolRequest asyncRequest) в System. Net .Security.SslStream.StartReadFrame (буфер Byte [], int32 readBytes, AsyncProtocolRequest asyncReecest. SslStream.StartReceiveBlob (буфер Byte [], AsyncProtocolRequest asyncRequest) в System. Net .Security.SslStream.CheckCompletionBeforeNextReceive (сообщение ProtocolToken, AsyncProtocolRequest asyncRequest) в качестве объекта .Sync.Sec. count, AsyncProtocolRequest asyncRequest) в System. Net .Security.SslStream.ProcessReceivedBlob (буфер Byte [], Int32 count, AsyncProtocolRequest asyncRequest) в System. Net .Security.SslStream.StartReadFrates, read32 AsyncProtocolRequest asyncRequest) в System. Net .Security.SslStream.PartialFrameCallback (AsyncProtocolRequest asyncRequest) --- Конец трассировки стека из предыдущего расположения, где было сгенерировано исключение --- в System. Net .Security.SslStream. ThrowIfExceptional () для System. Net .Security.SslStream.InternalEndProcessAuthentication (LazyAsyncResult lazyResult) в System. Net .Security.SslStream.EndProcessAuthentication (результат IAsyncResult. ) в системе. Net .Security.SslStream. <> c .b__65_1 (IAsyncResult iar) в System.Threading.Tasks.TaskFactory 1.FromAsyncCoreLogic(IAsyncResult iar, Func
2 endFunction, действие 1 endAction, Task
1 обещание, Boolean требуетSynchronization) --- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение - - at System. Net .Http.ConnectHelper.EstablishSslConnectionAsyncCore (Поток потока, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken) --- Конец трассировки стека внутренних исключений --- в System. Net .Http.ConnectHelpersCoreSoreSecore Поток, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken) в System. Net .Http.HttpConnectionPool.ConnectAsyn c (запрос HttpRequestMessage, логический allowHttp2, CancellationToken * HackdownRegnTectionPhttp). request, CancellationToken cancellationToken) в System. Net .Http.HttpConnectionPool.GetHttpConnectionAsyn c (запрос HttpRequestMessage, CancellationToken cancell ationToken) в System. Net .Http.HttpConnectionPool.SendWithRetryAsyn c (запрос HttpRequestMessage, Boolean doRequestAuth, CancellationToken cancellationToken) в System. Net .Http.RedirectHandtationTegnTokenToken (66). System. Net .Http.DiagnosticsHandler.SendAsyn c (запрос HttpRequestMessage, CancellationToken cancellationToken) в System. Net .Http.HttpClient.FinishSendAsyncBuffered (задача 1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
at Microsoft.IdentityModel.Protocols.HttpDocumentRetriever.GetDocumentAsync(String address, CancellationToken cancel)
--- End of inner exception stack trace ---
at Microsoft.IdentityModel.Protocols.HttpDocumentRetriever.GetDocumentAsync(String address, CancellationToken cancel)
at Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectConfigurationRetriever.GetAsync(String address, IDocumentRetriever retriever, CancellationToken cancel)
at Microsoft.IdentityModel.Protocols.ConfigurationManager
1. Отмена отмены настройки) - Конец внутренней трассировки стека исключений --- в Microsoft.IdentityModel.Protocols.ConfigurationManager 1.GetConfigurationAsync(CancellationToken cancel)
at Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler.HandleAuthenticateAsync()
at Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler.HandleAuthenticateAsync()
at Microsoft.AspNetCore.Authentication.AuthenticationHandler
1.AuthenticateAsyn c () в Microsoft.AspNetCore.Authentication.AuthenticationService.AuthenticateAsyn c (контекст HttpContext, схема String) в IdentityServer4.AccessTokenValidation.IdentityServerAuthenticationHandler.HandleAuthenticateAsyn c () 16.04.2020 14: 15: 59.336 -04: 00 [Информация] «Носитель» не был аутентифицирован. Сообщение об ошибке: "IDX20803: невозможно получить конфигурацию из: '[PII скрыт. Для получения дополнительной информации см. https://aka.ms/IdentityModel/PII.] '." 16.04.2020 14: 15: 59.338 -04: 00 [Информация] «Носитель» не был аутентифицирован. Сообщение об ошибке: "IDX20803: невозможно получить конфигурацию из: '[PII скрыт. Для получения дополнительной информации см. https://aka.ms/IdentityModel/PII.] '."