У меня есть приложение IdenityServer4 (. net core 2.1) и 2 клиентских mvc приложения (. net framework 452) с использованием промежуточного программного обеспечения UseOpenIdConnectAuthentication
. Я использую неявный поток и пытаюсь реализовать Single Log Out через Front-Channel. Я использую приложение Quickstart, и все настроено на работу. Мне просто нужно вернуть LoggedOut.cs html с SignOutIframeUrl
, присутствующим в модели.
Моя проблема в том, что, несмотря на то, что выход из системы работает и выходит из меня с обоих клиентов, я получаю следующие ошибки на вкладке сети и на вкладке консоли.
Я попытался добавить заголовок Content-Security-Policy
со всеми видами настроек в нем в атрибуте фильтра действия SecurityHeadersAttribute
в IdentityServer, но, похоже, ничего не решает проблему.
Несколько примеров:
var csp = "default-src 'self' 'unsafe-inline' http://localhost:*;"
"frame-ancestors 'self' http://localhost:*;" +
"frame-src 'self' http://localhost:*;" +
"child-src 'self' http://localhost:*;";
var csp = "default-src 'self' *.aspnetcdn.com 'unsafe-inline';" +
"frame-src 'self' *";
Вот так выглядит мое FrontChannelLogoutUri
действие
public void ForceLogOut()
{
AuthenticationManager.SignOut(CookieAuthenticationDefaults.AuthenticationType);
AuthenticationManager.SignOut(OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
Я также пытался добавление заголовка Content-Security-Policy
в ответ от ForceLogOut
, тоже не сработало.
Мой вопрос: как я могу исправить эту ошибку? Есть кое-что (скорее всего, много вещей), которого я не понимаю, но везде, где я пытался найти информацию о проблеме Refused to frame.. policy directive
, люди говорят, что я должен установить соответствующие значения frame-src
.