【问题标题】:Using JWT audience field for authorization roles使用 JWT 受众字段作为授权角色
【发布时间】:2015-01-06 09:47:52
【问题描述】:

我正在考虑使用 JWT 受众字段在我的应用中实现基于角色的授权。

所以我需要 ServiceA 需要“RoleA”受众,ServiceB 需要“RoleB”等。然后当我发布 JWT 时,我会包含适当的受众。

来自 JWT 草案spec 的相关部分:

aud(受众)声明标识了 JWT 的目标接收者。打算处理 JWT 的每个主体都必须使用受众声明中的值来标识自己。如果处理该声明的主体在此声明存在时未将其自身标识为 aud 声明中的值,则必须拒绝 JWT...受众值的解释通常是特定于应用程序的。

看来这可行,但由于我是 JWT 的新手,我想知道:基于角色的授权是否适合受众领域的用例?或者我应该使用带有自定义角色数组等的有效负载来滚动我自己的逻辑?

谢谢

【问题讨论】:

    标签: security authorization jwt


    【解决方案1】:

    我了解受众,而不是可以授权用户的消费者/应用程序列表。

    在我的应用程序中,我将角色放入有效负载中的自己的数组中。比如这样。

    {
     "sub": 1234567890,
     "exp": 9876543210,
    
      "name": "John Doe",
      "roles": ["USER", "EDITOR"]
    }
    

    在服务器上,我使用 spring security 和从“sub”加载的用户获得授权。

    在客户端上,我可以使用这些角色来显示正确的按钮和字段。

    【讨论】:

    • 是的,我最终也是这样做的。谢谢
    猜你喜欢
    • 2017-12-14
    • 2018-04-17
    • 2018-02-19
    • 1970-01-01
    • 2016-07-20
    • 2020-07-09
    • 2019-09-17
    • 2019-09-29
    • 2018-11-01
    相关资源
    最近更新 更多