SPA角色声明和授权。 .net核心和react.js

时间:2020-06-15 18:09:15

标签: .net reactjs security authorization single-page-application

我已经使用react.js创建了SPA,我具有.net核心3.1 API /后端,并且我正在使用Microsoft身份在用户登录时发布JWT,我还没有实现身份服务器或其他任何身份第三部分代码,我当前将登录的用户令牌存储在本地存储中。我的问题是两部分-

我已经阅读了很多有关安全性和身份验证的内容,并且意识到本地存储可能不是最佳选择,但是在大多数情况下并没有真正的替代选择,那么最佳选择是什么?

我的问题的第二部分是关于角色和声明,可以在用户对象中(与令牌一起)返回角色列表和声明列表吗?我意识到,知道自己在做什么的人可能会开始更改内容,使他们能够看到他们不应该看到的页面,按钮和“事物”,但是所有内容都已在服务器端得到验证,我真的看不到这种“烟雾和镜像”方法的替代方案”。例如,如果我有一个页面有条件地显示一个删除按钮,则没有所需角色的用户也许可以深入研究react开发工具并弄乱该按钮的外观,但是如果用户没有实际使用,服务器将拒绝该请求。发挥相关作用/要求。

任何正确方向的建议/链接/指向都会感激

1 个答案:

答案 0 :(得分:1)

如果您认为客户端是完全不安全的,那么任何人都可以查看客户端上的数据,包括角色,声明等,并且任何人都可以取消隐藏按钮等。只要所有东西都在服务器上受到保护(不会在上下文之外公开内部数据),那么我认为没有问题。

我还一直在使用带有react.js的.Net Core SPA应用程序,并实现ProfileService并通过context.IssuedClaims()设置声明将在用户的React中公开声明。