安全性 – 将JWT受众字段用于授权角色

我正在考虑使用JWT受众群体字段在我的应用中实施基于角色的授权.

所以我有ServiceA需要’RoleA’的观众,ServiceB需要’RoleB’等.然后当我发布JWT时,我会包括适当的观众.

JWT草案spec的相关部分:

The aud (audience) claim identifies the recipients that the JWT is intended for. Each principal intended to process the JWT MUST identify itself with a value in the audience claim. If the principal processing the claim does not identify itself with a value in the aud claim when this claim is present, then the JWT MUST be rejected… The interpretation of audience values is generally application specific.

所以它似乎可以工作,但是因为我是JWT的新手,我想知道:基于角色的授权是否适合观众领域的用例?或者我应该使用自定义角色数组等的有效负载滚动我自己的逻辑?

谢谢

最佳答案 我理解受众而不是可以授权用户的消费者/应用程序列表.

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

{
 "sub": 1234567890,
 "exp": 9876543210,

  "name": "John Doe",
  "roles": ["USER", "EDITOR"]
}

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

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

点赞