我正在考虑向JWT添加范围声明,这样我就可以了解用户的角色/权限,而无需点击数据库。我正在阅读rfc7519规范,它说:
声明名称可以由使用JWT的人随意定义。但是,在 为了防止碰撞,任何新的索赔名称都应该是 在IANA" JSON Web令牌声明中注册"登记处成立
通过10.1节或公共名称:包含
的值 防碰撞名称。
"范围"似乎没有在IANA注册,我对如何评估碰撞阻力感到困惑。 ObjectIds和URL显然没问题,但是我不确定它们具有哪些属性使它们比其他字符串更具抗冲突性。
声明的哪一部分需要"抗冲击",它是关键,价值还是两者兼而有之?
确保碰撞阻力有多重要?如何测量? (在jwt索赔的背景下)
答案 0 :(得分:1)
我认为这是需要防碰撞的关键,因为这是您在授权代码中查询的内容。
我们已经定义了我们的角色声明:
public const string RoleType = "http://schemas.<companyname>.com/platform/claims/role";
在URI中使用您的公司名称应该使其独一无二,因为您不会碰巧分享公司名称。