【问题标题】:Auth0: Limiting access based on scopesAuth0:根据范围限制访问
【发布时间】:2020-02-18 17:33:18
【问题描述】:

我正在为 Web API 设置授权。 API 将同时接收来自 m2m 应用程序的 post/put 请求,以及来自前端应用程序的 get/post/put 请求。

我知道我可以使用范围来限制这些应用程序接收的访问权限,但我不知道如何实现它。

我已经制作了我需要的范围,但我如何实际检查范围,然后基于此授予对 GET/POST 等的访问权限?

如果这是一个愚蠢的问题,我深表歉意。我才编程一年。

【问题讨论】:

    标签: c# auth0


    【解决方案1】:

    您应该阅读或查看基于角色的授权 (https://docs.microsoft.com/en-us/aspnet/core/security/authorization/roles?view=aspnetcore-3.1) - 请注意,Microsoft Docs 的 URL 适用于 DotNet Core 3.1 版

    如果配置正确,您可以在要指定范围的方法之上使用注释:

    [Authorize(Roles = "Administrator")]
    public class AdministrationController : Controller
    {
    }
    

    [Authorize(Roles = "Administrator, PowerUser")]
    public class ControlPanelController : Controller
    {
        public ActionResult SetTime()
        {
        }
    
        [Authorize(Roles = "Administrator")]
        public ActionResult ShutDown()
        {
        }
    }
    

    然后您可以为您的 M2M 应用程序创建一个角色,并允许该应用程序仅使用特定方法,并且使用您的前端的用户可以拥有其他角色。正如您在第二个示例中看到的那样,您可以在控制器本身上设置授权角色,然后在您的方法中缩小范围。

    【讨论】:

    • 感谢您的回答!我去看看!
    猜你喜欢
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2014-10-06
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多