我们目前正在开发一个具有以下架构的 Web 应用程序。
- 基于 Angular 7 的单页应用程序
- 基于 .NET Core WebAPI 的后端。
我目前正在考虑涵盖此类应用程序的身份验证和授权要求的最佳实践。
客户端授权
- SPA 登录后采用 JWT。
- 路由的授权将由 Angular 中的路由保护处理。例如,用户具有
reportviewer
角色,用户将被允许查看与报表相关的组件的路由。 - 菜单项将根据 JWT 上的信息可见。例如,用户具有reportviewer 角色,用户将看到与报表相关的菜单项。
服务器端
JWT 将包含一些授权信息。(例如角色声明)授权属性将用于 WebAPI 的授权。
我开发了一个用户编辑页面来定义用户并分配所需的角色。
问题
开发人员可能会不一致地定义菜单项、路由保护和 WebAPI 的授权。我如何构建一致的授权框架来解决这种应用程序的这个问题?
提前致谢。
依山