Identity Server 3 и Azure AD с единым выходом - PullRequest
0 голосов
/ 04 января 2019

Я использую 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 напрямую, он будет работать нормально, но не будет следовать документам.

Любая помощь приветствуется.

...