Защита Angular & .Net Core API с помощью Azure AD и ролей приложений - PullRequest
0 голосов
/ 25 сентября 2019

Моя система состоит из внешнего интерфейса Angular и внутреннего интерфейса .Net Core API.Оба зарегистрированы как отдельные приложения Active Directory на портале Azure.

Следовательно, оба приложения защищены Azure AD.API предоставляется и используется аутентифицированными пользователями в Angular front end.

Проблема в том, что я хочу, чтобы у пользователей были разные типы ролей (Пользователь / Модератор / Администратор).Эти роли делают определенные конечные точки API доступными или недоступными в зависимости от роли пользователя.Роли пользователей также формируют пользовательский интерфейс на Angular.

Из моего исследования выяснилось, что я могу использовать в Azure AD что-то под названием Роли приложений , однако я теряюсь каккак я бы их реализовал.

У меня есть следующие вопросы -

  1. В каком зарегистрированном приложении Azure AD (API или Angular) должны быть определены роли приложения?
  2. Как мне получить доступ к этим ролям - содержатся ли они в токене-носителе или мне нужно выполнить вызовы Microsoft Graph API для их получения?

1 Ответ

1 голос
/ 25 сентября 2019

В каком зарегистрированном приложении Azure AD (API или Angular) должны быть определены роли приложения?

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

Как мне получить доступ к этим ролям - содержатся ли они в них?в токене-носителе или мне нужно делать вызовы Microsoft Graph API для их получения?

Они будут в токене доступа, если вы определите их в приложении API и назначите их пользователям.Существует некоторое ограничение на количество, которое будет в токене, если оно будет получено неявным потоком, но если у вас есть 3, как вы упомянули, у вас все будет в порядке.

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