Как это мешает кому-либо взять токен доступа с URL-адреса перенаправления и использовать его в другом приложении?
MSAL не может ничего сделать с доступом к URL.
Это обязанность браузера.
Политика одинакового происхождения требует, чтобы только сценарий на странице с тем же источником мог получить доступ к URL-адресу iframe.
Поэтому, даже если я добавлю на свой веб-сайт iframe, который выполнял скрытый вход в систему для одного из ваших приложений, я не смог бы получить токен, если URL перенаправления находится на другом имени хоста, чем у меня.
Допустим, в вашем приложении настроен один ответный URL: https://yoursite.com/aad-callback
.
Если бы я хотел получить токен, мой сайт должен был бы быть размещен на yoursite.com
.
Я не могу попросить AAD вернуть токен на другой URL.
Другой вариант - перехватить его во время полета в ваше приложение.
Но для этого потребуется посредственное соединение TLS.
Если кто-то может сделать это, у вас есть большие проблемы.
Атаки воспроизведения предотвращаются с помощью одноразовых номеров, в каждом запросе аутентификации устанавливается новое значение: https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/3fb9ce5a16ea462336eee62b496dfae8611f0fbc/lib/msal-core/src/AuthenticationRequestParameters.ts#L39