LegacySameSiteCookieBehaviorEnabled = 0 в реестре влияет на процесс проверки подлинности приложения - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть приложение asp. net mvc4 с .NETFramework 4.6, с аутентификацией AzureAD и протоколом OpenID Connect. Теперь с последними обновлениями Chrome80 SameSite = Нет обновления, аутентификация приложения не проходит.

Здесь приведены инструкции по тестированию: https://docs.microsoft.com/en-us/office365/troubleshoot/miscellaneous/chrome-behavior-affects-applications#testing -гидлайны

Я использовал нижеприведенную статью, которая использует модуль URLRewrite для настройки SameSite = None:

https://blog.elmah.io/the-ultimate-guide-to-secure-cookies-with-web-config-in-net/

<system.webServer>
  <rewrite>
   <outboundRules>
        <rule name="Remove Server Header">
          <match serverVariable="RESPONSE_Server" pattern=".+" />
          <action type="Rewrite" value="" />
        </rule>
        <rule name="Add SameSite" preCondition="No SameSite">
          <match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
          <action type="Rewrite" value="{R:0}; SameSite=None" />
        </rule>
        <preConditions>
          <preCondition name="No SameSite">
            <add input="{RESPONSE_Set_Cookie}" pattern="." />
            <add input="{RESPONSE_Set_Cookie}" pattern="; SameSite=None" negate="true" />
          </preCondition>
        </preConditions>
</outboundRules>
  </rewrite>
  ...
</system.webServer>

Обновить флаги в браузере Chrome на Включено:

enter image description here

Установка значения LegacySameSiteCookieBehaviorEnabled в реестре на 1 приводит к успешной аутентификации приложения, но если для LegacySameSiteCookieBehaviorEnabled задано значение 0, то в случае сбоя аутентификации приложения.

Может кто-нибудь помочь мне узнать, как это исправить вопрос

1 Ответ

0 голосов
/ 14 февраля 2020

Похоже, вы смешиваете Chrome флагов (chrome://flags/#same-site-by-default-cookies) с Chrome Enterprise Policy - ​Legacy​Same​Site​Cookie​Behavior​Enabled.

Chrome Enterprise Policies предназначены для организаций, которые поддерживают устаревшие приложения, где файлы cookie не так легко обновляются. Установив для этого значение 1, вы явно сохраняете старое поведение файлов cookie. Если это действительно то, что вы хотите сделать, я бы посмотрел на более конкретную c LegacySameSiteCookieBehaviorEnabledForDomainList policy .

Однако, так как вы пытаетесь обновить свое приложение, я бы убедитесь, что у вас не установлена ​​ни одна из политик, чтобы вы могли убедиться, что новое поведение применяется. Вы можете посетить https://samesite-sandbox.glitch.me и, если все строки зеленого цвета, в вашем браузере включено новое поведение.

Однако я не уверен в ваших правилах повара ie Я не вижу, чтобы вы явно добавляли Secure к вашим SameSite=None куки. Оба из них должны быть установлены. Я также хотел бы убедиться, что вы не просто добавляете SameSite=None; Secure к каждому отдельному повару ie. Просто сделайте это для тех, кому, как вы знаете, нужен доступ из сторонних контекстов. Что касается других файлов cookie, рассмотрите SameSite=Lax.

Если вам необходимо узнать, какие файлы cookie блокируются при запросах, вы можете проверить вкладку сети в Chrome DevTools. В частности, выберите запрос и проверьте вкладку куки там. Вы можете найти подробные инструкции по https://www.chromium.org/updates/same-site/test-debug

...