Неявное предоставление с ASP.net Core 2 веб-API и SPA - PullRequest
0 голосов
/ 09 июня 2018

У меня есть внешний интерфейс Angular SPA, который поддерживается веб-API ASP.net core 2, который находится в другом веб-приложении Azure.Этот веб-API заблокирован Azure AD, и клиент AD одинаков как для Angular, так и для внутреннего API.Я хочу, чтобы все пользователи в клиенте Azure AD имели возможность доступа к интерфейсу интерфейса и бэкэнд-API.Однако немногие пользователи должны иметь определенные разрешения для определенных вещей (Создать / обновить).

Я могу создать регистрацию приложения в Azure AD и использовать одну и ту же регистрацию приложения как для SPA, так и для внутреннего API.А затем используйте ADAL.js в SPA, чтобы получить токен доступа и токен идентификатора и передать их внутреннему веб-API.Я не уверен, что роль пользователя будет отражена в претензиях к веб-API?Я планирую добавить пользователей в определенные роли приложений.

1 Ответ

0 голосов
/ 10 июня 2018

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

У вас есть две опции:

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