【问题标题】:ASP.NET Core: JWT token with ScopesASP.NET Core:具有范围的 JWT 令牌
【发布时间】:2019-04-04 14:36:40
【问题描述】:

背景

我有一个包含 API 的 ASP.NET 核心 (v2.1) 项目。此 API 受 JWT 承载限制访问。

我的服务器公开了一个用于登录的端点:

POST http://example.com/api/login

将令牌附加到请求后,我可以调用其中一种服务器方法(GETDELETE

GET http://example.com/api/1234

DELETE http://example.com/api/1234

目标

我想实现“另一种类型”的令牌,它只允许访问特定的scope。假设我们只想为GET 方法提供访问权限。所以,如果你有这个令牌 - 你可以GET 资源,但不能DELETE 它。

想知道 JWT 不记名令牌是否可以做到这一点?如果是,怎么做?

谢谢!

【问题讨论】:

    标签: c# asp.net asp.net-core jwt


    【解决方案1】:

    您不应该对令牌本身执行此操作。令牌用于验证用户是他们声称的身份。相反,您应该考虑使用角色来授权操作并分配不同的用户角色以限制对删除动词的访问。

    这篇文章应该可以进一步解释

    https://docs.microsoft.com/en-us/aspnet/core/security/authorization/roles?view=aspnetcore-2.1

    【讨论】:

      【解决方案2】:

      JWT Bearer 令牌应该用于身份验证机制,但您所说的是Authorization,因此您的方法似乎是错误的。您应该使用授权管道并实施适当的基于角色/策略的授权,这将限制对这些 Api 端点的访问。

      【讨论】:

        猜你喜欢
        • 2020-08-22
        • 2018-03-30
        • 2020-09-04
        • 2020-07-01
        • 2019-07-18
        • 2016-09-25
        • 2016-09-24
        • 2021-04-20
        • 2022-07-08
        相关资源
        最近更新 更多