#msal #msal.js
#azure-ad-msal #msal.js
Вопрос:
Какова цель msal:stateMismatch
? Как это следует обрабатывать?
msal
транслирует событие msal:stateMismatch
после перенаправления обратно из login.microsoftonline.com .
Единственная информация, которую я смог найти, была в spec.ts на сайте GitHub: stateMismatch broadcast when state does not match
Ответ №1:
Вы получите это, когда состояние, возвращаемое STS, отличается от состояния, отправленного MSAL. MSAL отправляет состояние, связанное с каждым запросом, в STS и ожидает, что ответ будет согласованным. Кто-то может перехватить запрос и использовать его в другом месте. Если запрос вызывается по внешнему URL, любой может вызвать его, используя поддельные данные, пока MSAL ожидает ответа от STS.
Согласно спецификации: непрозрачное значение, используемое для поддержания состояния между запросом и обратным вызовом, смягчение последствий CSRF выполняется путем криптографической привязки значения этого параметра к файлу cookie браузера. Вот дополнительная информация, которая может показаться вам интересной об атаках CSRF и параметре состояния.
Комментарии:
1. спасибо за информацию @Jenny. Ссылки очень полезны. STS = служба токенов безопасности. Значение состояния генерируется msal, сохраняется локально, а затем сравнивается с возвращаемым значением. Я использую msal 0.2.1. Обновление до msal 0.2.4 решило бы эту проблему?
2. Обновление @DeanB_Develop — это всегда хорошо. Попробуйте, и если проблема не устранена, откройте проблему в библиотеке MSAL JS , и они смогут взглянуть.