Необработанная разметка отображается в Chrome вместо перенаправления единого входа - IdentityProvider.SendSAMLResponseByHTTPPost
Мы используем ComponentSpace.SAML2.Profiles.SSOBrowser.IdentityProvider и вызываем SendSAMLResponseByHTTPPost для выполнения единого входа и перенаправления пользователя на другой URL.
Это нормально работает в IE и Firefox, но в Chrome в браузере отображается следующее
<html xmlns="http://www.w3.org/1999/xhtml">
<body onload="document.forms.samlform.submit()">
<noscript>
<p><strong>Note:</strong> Since your browser does not support Javascript, you must press the Continue button once to proceed.</p>
</noscript>
<form id="samlform" action="https://REDACTED URL" method="post">
<div>
<input type="hidden" name="SAMLResponse" value="REDACTED SAMLResponse"/>
<input type="hidden" name="RelayState" value="https://REDACTED URL"/>
</div>
<noscript>
<div><input type="submit" value="Continue"/></div>
</noscript>
</form>
</body>
</html>
Это работает на Chrome в локальной среде с тем же кодом.
Есть некоторые проблемы с сертификатами SSL в среде, где мы испытываем проблему. Не уверен, что это может быть связано - является ли Chrome более строгим по сравнению с другими браузерами?
2 ответа
Это связано с тем, что присутствовал заголовок "x-content-type-options: nosniff", который не позволяет Chrome самостоятельно определять тип MIME. Явное добавление заголовка Content-Type решило проблему. https://www.owasp.org/index.php/List_of_useful_HTTP_headers
Спасибо за информацию.
Мы не видели этого с Chrome или любым другим браузером.
Отслеживая HTTP-трафик, я вижу, что включен следующий заголовок:
Content-Type: text / html; кодировка = UTF-8
Интересно, если в вашем сценарии промежуточный узел лишил этот заголовок?