我在用于检查控制器中的用户权限的声明中遇到了很多问题。如何使用.net核心在cookie中存储声明的JWT
应用结构
我们的后端是.NET的核心,前端反应,现在我们只允许采伐利用中使用谷歌谷歌的API支持电子邮件。我们生成一个JWT并将其存储在浏览器的localStorage中,然后根据每个请求发送它。此外,没有角色:如果你登录,那么你是一个管理员。
做了应用程序“骨架”的开发人员现在都不见了,这是我第一次处理安全问题。
了新的要求
我们现在需要实现角色和权限,它似乎MS预计一个用于该索赔。我做了这些,并将这些声明添加到jwt,然后在配置中添加了策略,并且它实际上工作。如果您有特定的声明,则可以访问特定的控制器或方法,否则服务器将返回403错误。
但是后来我用一个实际的管理员角色登录,使用devtools复制localStorage值,然后用几乎没有权限的用户注销并重新登录。当我粘贴本地存储条目时(再次使用devtools),我立即得到了所有声明,并能够访问管理员可以访问的每个控制器和方法。
看来正确的路要走,那么应该使用仅Http,安全cookie,或许与“SAMEORIGIN”设置为true(不知道这将如何影响单点登录),但我不明白如何办那。我看过博客文章,甚至下载了一个应用程序(我无法运行,但我将代码复制到了我的应用程序中),但我一直在失败。另外我不明白,如果我需要为检查控制器策略时使用的cookie做任何事情。
任何人都可以帮我一下吗?