我在HTTP标头中使用JWT令牌来验证对资源服务器的请求。资源服务器和身份验证服务器是Azure上的两个单独的辅助角色。
我不能决定应该将请求存储在令牌中还是将请求附加到请求/响应中。Claims列表影响客户端UI元素的呈现以及对服务器上数据的访问。因此,在处理请求之前,我想确保服务器收到的声明是真实的并经过验证的。
声明示例包括:CanEditProductList,CanEditShopDescription,CanReadUserDetails。
我要为其使用JWT令牌的原因是:
- 更好地防止客户端对声明进行编辑(即入侵声明列表)。
- 无需在每个请求上查找索赔。
我不想使用JWT令牌的原因:
- 然后,身份验证服务器必须知道以应用程序为中心的声明列表。
- 令牌成为黑客入侵的单一点。
- 我读过几句话说,JWT令牌不用于应用程序级数据。
在我看来,两者都有缺点,但是我倾向于将这些声明包含在令牌中,并且只想由以前处理过此问题的人员来处理。
注意:我将对所有API请求使用HTTPS,因此在我看来,令牌将“足够”安全。我正在使用AngularJS,C#,Web API 2和MVC5。