SPA 角色声明和授权。 .net 核心和 react.js
SPA roles claims and authorisation. .net core and react.js
我已经使用 react.js 创建了一个 SPA,我有一个 .net core 3.1 API/Backend 并且我正在使用微软身份在用户登录时发出 JWT,我还没有实施了身份服务器或任何其他第 3 部分代码,我目前正在将登录的用户令牌存储在本地存储中。我的问题分为两部分 -
我已经阅读了很多关于安全性和身份验证的内容,并意识到本地存储可能不是最佳选择,但在大多数情况下并没有真正的替代方案,那么最佳选择是什么?
我的问题的第二部分是关于角色和声明,是否可以在用户对象(与令牌一起)中 return 角色列表和声明列表?我意识到知道那里正在做什么的人可以开始改变一些东西,让他们看到他们不应该看到的页面、按钮和 "things" 但是一切都在服务器端经过验证,我真的看不到替代这个 "smoke and mirrors approach".例如,如果我有一个有条件地显示删除按钮的页面,则没有所需角色的用户可能会深入研究 React 开发工具并弄乱以使该按钮出现,但是如果用户实际上没有出现,服务器将拒绝该请求有相关的role/claim.
如果advice/link/point方向正确,我们将不胜感激
如果您假设客户端完全开放且不安全,任何人都可以查看客户端上的数据,包括角色、声明等,并且任何人都可以取消隐藏按钮等。只要服务器上的所有内容都是安全的(并且你没有在上下文之外公开内部数据)那么我认为没有问题。
我也一直在查看带有 react.js 的 .Net Core SPA 应用程序并实施 ProfileService
并通过 context.IssuedClaims()
设置声明将在用户反应中公开声明。
我已经使用 react.js 创建了一个 SPA,我有一个 .net core 3.1 API/Backend 并且我正在使用微软身份在用户登录时发出 JWT,我还没有实施了身份服务器或任何其他第 3 部分代码,我目前正在将登录的用户令牌存储在本地存储中。我的问题分为两部分 -
我已经阅读了很多关于安全性和身份验证的内容,并意识到本地存储可能不是最佳选择,但在大多数情况下并没有真正的替代方案,那么最佳选择是什么?
我的问题的第二部分是关于角色和声明,是否可以在用户对象(与令牌一起)中 return 角色列表和声明列表?我意识到知道那里正在做什么的人可以开始改变一些东西,让他们看到他们不应该看到的页面、按钮和 "things" 但是一切都在服务器端经过验证,我真的看不到替代这个 "smoke and mirrors approach".例如,如果我有一个有条件地显示删除按钮的页面,则没有所需角色的用户可能会深入研究 React 开发工具并弄乱以使该按钮出现,但是如果用户实际上没有出现,服务器将拒绝该请求有相关的role/claim.
如果advice/link/point方向正确,我们将不胜感激
如果您假设客户端完全开放且不安全,任何人都可以查看客户端上的数据,包括角色、声明等,并且任何人都可以取消隐藏按钮等。只要服务器上的所有内容都是安全的(并且你没有在上下文之外公开内部数据)那么我认为没有问题。
我也一直在查看带有 react.js 的 .Net Core SPA 应用程序并实施 ProfileService
并通过 context.IssuedClaims()
设置声明将在用户反应中公开声明。