Какова цель MSAL stateMismatch

#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 , и они смогут взглянуть.