Защита токенов доступа Azure Active Directory B2C и токенов обновления - PullRequest
1 голос
/ 04 апреля 2019

Я встречал очень много статей, объясняющих, как токены должны быть защищены от несанкционированных атак.В самой документации Microsoft для msal.js указано, что токены хранятся в sessionStorage по умолчанию.Поскольку localStorage и sessionStorage оба уязвимы для атак XSS;Какие методы вы использовали, ребята, для защиты этих токенов.Пожалуйста, имейте в виду, что я надеюсь, что от моих пользователей не потребуется часто заходить в систему (мне нужно, чтобы они оставались в системе для расширения Chrome, которое я создаю, чтобы работать с моим веб-приложением).

Я создал два отдельных проекта;один для моих приложений API, а другой для моего приложения-клиента.Я использую .net Core 2.2 и Angular 7. Я читал статьи, в которых люди говорят, что нужно использовать файлы cookie httponly.Мой вопрос в этом отношении:как это работает с Azure Active Directory B2C?Я просто так растерялся, поэтому, если бы кто-то смог кое-что прояснить, я был бы очень признателен.

1 Ответ

0 голосов
/ 04 апреля 2019

Итак, я пришел к небольшому выводу, что в рамках SPA (одностраничного приложения) обычно дается неявное предоставление. Это означает, что токен обновления не предоставляется, поскольку нет способа надежно сохранить его в браузере. Только токен доступа. Токены доступа недолговечны; следовательно, если злоумышленник овладеет им, он может нанести урон только в течение определенного периода времени, а взломанные маркеры доступа легче обнаружить и устранить.

Поэтому мой подход будет заключаться в том, чтобы использовать localStorage и приложить некоторые усилия для предотвращения распространенных атак между сайтами (XSS). Что касается расширения chrome, Google предлагает API «chrome.identity», который утверждает, что надежно хранит токены, а также обеспечивает безопасный способ получения и обновления токенов. (источник: https://www.informationsecuritybuzz.com/articles/security-and-privacy-best-practices-on-building-a-chrome-extension/)

Таким образом, может показаться, что с помощью расширения Chrome вы можете поддерживать долгоживущий сеанс, но из-за несуществующей защиты SPA в реальном времени в браузере любой сеанс будет ограничен временем жизни самого токена доступа. Пользователь должен будет повторно пройти аутентификацию. Если вы используете социальную регистрацию, это будет довольно легко для пользователя.

Если кто-то увидит какие-либо проблемы с тем, что я здесь изложил, не стесняйтесь; в противном случае я отмечу этот вопрос как ответивший для дальнейшего ознакомления с другими, а также сделаю себя доступным в будущем для получения обновлений и вопросов, касающихся моего дальнейшего развития.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...