【问题标题】:How to ensure collision resistance in JWT claims?如何确保智威汤逊索赔中的抗碰撞性?
【发布时间】:2016-09-30 22:38:51
【问题描述】:

我正在考虑向我的 JWT 添加范围声明,这样我就可以知道用户的角色/权限而无需访问数据库。我正在阅读 rfc7519 规范,它说:

使用 JWT 的人可以随意定义声明名称。然而,在
为了防止冲突,任何新的声明名称都应该是
在 IANA 注册“JSON Web 令牌声明”注册成立
根据第 10.1 节或成为公共名称:包含 a
的值 防碰撞名称。

“范围”似乎没有在 IANA 注册,我对如何评估抗碰撞性感到困惑。 ObjectIds 和 URLs 显然没问题,但我不确定它们具有哪些属性使它们比其他字符串更耐碰撞。

还有声明的哪一部分需要“防碰撞”,是键、值还是两者兼而有之?

确保抗碰撞性有多重要,我该如何衡量? (在 jwt 声明的上下文中)

【问题讨论】:

  • 我阅读了规范,但我不明白导致碰撞的原因,您介意再解释一下吗?这些 JWT 不是保存在每个特定网站的本地存储中吗?如果它有碰撞,它是碰撞什么?谢谢。

标签: authentication hash cryptography jwt access-token


【解决方案1】:

我认为这是需要防冲突的密钥,因为这是您将在授权代码中查询的内容。

我们已经定义了我们的角色声明,例如:

public const string RoleType = "http://schemas.<companyname>.com/platform/claims/role";

在 URI 中使用您的公司名称应该使其唯一,因为您不会碰巧共享公司名称。

【讨论】:

    猜你喜欢
    • 2015-10-16
    • 2021-07-15
    • 2016-09-21
    • 2017-01-30
    • 2020-12-27
    • 2015-05-25
    • 2015-04-03
    • 2023-03-10
    • 2018-07-14
    相关资源
    最近更新 更多