Я использую Identity Server 3 с плагином WS-Federation сверху и провайдером Azure AD SAML2 в качестве внешнего провайдера в Identity Server 3.
Нет проблем при выполнении единого входа между IDSRV3, клиентом, проверяющей стороной и AZURE AD.
Проблема заключается в том, что я выполняю единый выход из Azure с проверенным RP (клиент федерации Ws).
Это то, что я получаю Firefox :
Нагрузка запрещена X-Frame-Options: https://localhost:5000/core/wsfed/signout не разрешает кадрирование с перекрестным началом.
In Chrome :
Отказался отображать 'https://localhost:5000/core/wsfed/signout' в кадре, поскольку для параметра' X-Frame-Options 'установлено значение' sameorigin '.
Как я вижу в плагине WsFederation, маршрут "/ wsfed / signout" не отключает XFO
[Route("signout")]
[HttpGet]
public async Task<IHttpActionResult> SignOutCallback()
{
Logger.Info("WS-Federation signout callback");
var urls = await _cookies.GetValuesAndDeleteCookieAsync(WsFederationPluginOptions.CookieName);
return new SignOutResult(urls);
}
А вот на GET-маршруте "/ wsfed":
[Route("")]
[SecurityHeaders(EnableCsp = false, EnableXfo = false)]
public async Task<IHttpActionResult> Get()
{
...
if (signout != null)
{
Logger.Info("WsFederation signout request");
return await ProcessSignOutAsync(signout);
}
Где здесь ошибка? Если я удалю заголовки X-Frame-Options в IIS напрямую, он будет работать нормально, но не будет следовать документам.
Любая помощь приветствуется.