ADFS 2016 X-Frame-Options для отказа

Я использую adal.js. Я настроил свое приложение для работы с сервером ADFS 2016 (локально), и процесс аутентификации работает нормально, но после истечения срока действия файла cookie единого входа ADFS, когда клиент отправляет запрос на обновление токена (в скрытом фрейме), браузер показывает в консоль выдает следующую ошибку: отказывается отображать ' https://myadfs/adfs/ls/SAMLRequest=...' в новом фрейме, потому что для параметра 'X-frame-options' установлено значение deny.

Для повторной аутентификации пользователю необходимо обновить страницу (F5).

Есть ли какое-либо решение / решение этой проблемы?

1 ответ

Как я объяснил в этом аналогичном вопросе, командлет "Set-AdfsResponseHeaders" также поддерживается в ADFS 2016 после недавнего обновления MS (примерно в мае 2019 г.):

Set-AdfsResponseHeaders -RemoveHeaders "X-Frame-Options"

Тем не менее, я согласен с SamuelD MSFT в том, что в настоящее время использование интеграции с iFrame больше не является хорошей практикой.

ADFS <= 2016 не разрешает вход в систему на основе iFrame для какой-либо интерактивной аутентификации по соображениям безопасности. Это сработало бы, если бы пользователю не нужно было выполнять интерактивный вход в систему (файл cookie единого входа или WIA).

Правильный шаблон (поскольку вы находитесь в 2016 году) - использовать потоки OIDC для входа в приложение и использовать токен обновления для получения новых токенов доступа.

Даже здесь вам нужно обработать случай истечения срока действия маркера обновления, когда вам нужно будет локально сохранить контекст приложения (cookie или локальный кеш) и включить полное перенаправление в ADFS.

В ADFS 2019 теперь есть опция, в которой администратор может настроить параметры, для которых хосты разрешают iFrames, управляя заголовками.

Спасибо // Сэм (Twitter: @MrADFS)

Другие вопросы по тегам