Лучший способ авторизовать пользователя в группе Azure AD в SPA (React JS)

Мы хотим авторизовать пользователя в группе Azure AD в SPA (React JS); т. е. Пользователь разрешает доступ к API из SPA, если он принадлежит к определенной группе (например, testgroup). Найден пример кода в Msal.JS.

я следую

  • Создать объект UserAgentApplication
  • Вызов Loginpopup (здесь область графа - "Directory.Read.All")
  • Позвоните вAcquireTokenSilent (получите токен доступа для вызова MS Graph Api)
  • Вызовите MS Graph, чтобы получить все группы объявлений, к которым принадлежит пользователь.

    URL-адрес для получения групп объявлений — https://graph.microsoft.com/v1.0/me/memberOf

  • После получения Группы объявлений (пользователь принадлежит), проверка того, принадлежит ли пользователь к этим группам AD (здесь - тестовая группа)

Пожалуйста, подскажите, иду ли я в правильном направлении или есть какие-то другие варианты.

Спасибо за ваше предложение.

С уважением,

Деб

Если ваш SPA работает в клиентском браузере, то проверьте авторизацию на основе членства пользователя в одной или нескольких группах, на мой взгляд, действительно должно быть в API. Вы все равно можете контролировать, что показывать/скрывать из SPA, но фактическая авторизация осуществляется в API имеет смысл. Также рассмотрите возможность использования ролей приложений, поддерживаемых приложениями Azure AD, поскольку они предназначены для аналогичной цели. Я видел приложения, использующие групповые утверждения, роли приложений или даже их комбинацию для принятия решений об авторизации.

Rohit Saigal 20.03.2019 18:58

Спасибо, Рохит. Да, наш SPA будет работать в клиентском браузере. На данный момент мы не реализовали авторизацию пользователей в API, сделаем. Но теперь мы хотим авторизовать пользователя в группе Azure AD в SPA. Не могли бы вы предоставить мне какой-либо образец группового заявления на SPA (React JS).

Debasis Ghosh 20.03.2019 20:45

Да, вам действительно нужно проверить их в API. Проверка их в пользовательском интерфейсе является своего рода удобством для пользователей, поэтому они не видят параметры, которые они все равно не могут использовать. Если вы не проверите их в API, у вас будет серьезная уязвимость в системе безопасности.

juunas 20.03.2019 22:59

Спасибо @Juunas. Для нашего требования мы проверим (принадлежит ли пользователь к группе AD) пользователя при входе в систему в SPA, после входа в систему Пользователь будет взаимодействовать с API из SPA.

Debasis Ghosh 21.03.2019 18:28
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
4
639
1

Ответы 1

Вместо использования msal.js я использовал реагировать-аад-msal. Это библиотека-оболочка мсал, и она стала намного более гладкой. Я бы попробовал это
https://ahsanshares.wordpress.com/2019/10/19/реагировать-приложение-потребление-микрософт-граф/

Другие вопросы по теме