В настоящее время мы разрабатываем веб-приложение со следующей архитектурой.
- Одностраничное приложение на основе Angular 7.
- Серверная часть на основе .NET Core WebAPI.
В настоящее время я рассматриваю передовой опыт для покрытия требований аутентификации и авторизации приложений такого типа.
Авторизация на стороне клиента
- SPA принимает JWT после входа в систему.
- Авторизацией маршрутов будет заниматься охрана маршрутизации в Angular. Например, у пользователя есть роль
reportviewer
, пользователю будут разрешены маршруты для просмотра компонентов, связанных с отчетом. - Пункты меню будут отображаться в соответствии с информацией на JWT. Например, если у пользователя есть роль просмотра отчетов, он увидит пункты меню, связанные с отчетами.
Сторона сервера
JWT будет содержать некоторую информацию об авторизации (например, утверждения ролей). Атрибуты авторизации будут использоваться для авторизации WebAPI.
Я разработал страницу редактирования пользователя, чтобы определить пользователя и назначить необходимые роли.
Вопрос
Авторизация пунктов меню, защита маршрутизации и веб-API могут быть определены разработчиками непоследовательно. Как я могу создать согласованную структуру авторизации для решения этой проблемы для такого рода приложений?
Заранее спасибо.
Ихсан