Я создаю приложение, у которого есть внешний интерфейс (SPA, созданный с помощью Vue.js), который взаимодействует с парой основанных на json Web API в серверной части (размещенной в Azure). Веб-API должны быть защищены с помощью Azure Active Directory, а пользователи должны быть членами группы безопасности. Кроме того, SPA должен просто попытаться заставить пользователя войти в утвержденную учетную запись, если он не вошел в систему как одна (то есть просто с автоматическим перенаправлением).
У меня фактически все это работает. Приложение AAD имеет Group.Read.All, пользователь входит через SPA и дает согласие, и SPA вызывает getMemberGroups. Кроме того, веб-API могут проверять токен доступа, предоставленный SPA, и веб-API, к сожалению, также должны вызывать getMemberGroups.
И я думаю, что это моя проблема. Веб-API продолжают вызывать getMemberGroups, чтобы заблокировать его. Если бы я выполнял аутентификацию на сервисе, я мог бы потенциально вернуть маркер доступа только после проверки групп членства. Но затем я теряю простую модель входа MSAL в SPA - веб-API на самом деле не предоставляют никакого внешнего интерфейса, SPA статически размещается.
Насколько я могу судить, я не могу получить AzureActive Directory для создания токена гарантированно содержит определенные групповые заявки. Я думаю, что это решило бы мою проблему.
Может кто-нибудь предложить несколько советов о том, как лучше всего разработать модель аутентификации в среде SPA + Web API? Или метод, который я выбрал, единственный способ сделать это?
Спасибо!