У меня есть Angular 4 SPA, веб-API (.net core 2.0) и Azure AD
Мои требования:
1.Ограничить аутентификацию (вход в систему) в SPA только для определенных групп Azure AD Например. У меня есть две группы «Продажи» и «Маркетинг», и если пользователь является членом любой из этих двух групп, то только пользователь должен иметь возможность войти в систему
2. После входа в систему пользователь может выполнять определенные административные операции над другими пользователями с помощью Microsoft Graph API
.
Мой подход
- Для реализации требования № 1 я собираюсь реализовать Identity Server, который будет взаимодействовать с Azure AD. Затем SPA будет использовать неявный поток для аутентификации с использованием идентификационного сервера в качестве IP
- Чтобы выполнить требование № 2, я думаю, что мне нужно использовать поток кода авторизации Oauth 2.0 или грант учетных данных клиента OAuth 2.0, и мой веб-API (.net core 2.0) будет действовать как конфиденциальный клиент, который будет иметь свой собственный токен доступа к выполнять административные операции с использованием MS graph API
- Таким образом, как только пользователь войдет в поток, будет SPA (имеющий токен доступа для авторизации в web api) => Веб-API (имеющий другой токен доступа с высокими привилегиями) => MS graph API => Azure AD
Вопрос
- Я на правильном пути реализации?
- Если не могли бы вы, пожалуйста, направить меня в правильном направлении?