jwt上的私人和公共索赔有啥区别
Posted
技术标签:
【中文标题】jwt上的私人和公共索赔有啥区别【英文标题】:What is difference between private and public claims on jwtjwt上的私人和公共索赔有什么区别 【发布时间】:2018-08-19 07:55:24 【问题描述】:关于 jwt 的私有声明和公共声明有什么区别?
我对这两种说法之间的区别感到困惑。据我了解,它们都是自定义声明。那么有什么区别呢?
【问题讨论】:
【参考方案1】:公开声明
需要抗冲突的自定义声明名称。它们的名称应该是 UUID 或以 URL 为前缀,以便为它们创建安全的命名空间并避免冲突。
私人声明
不需要抗冲突的自定义声明名称。
关于 jwt 的私有声明和公共声明有什么区别?
唯一的区别是公共声明必须具有普遍的抗碰撞性,而私有声明则不需要。
【讨论】:
感谢您的回复。如何设置公共声明和私人声明? 由于 JWT 有效负载是 JSON,从技术上讲,您可以将任何键/值对作为声明放入其中并对其进行签名。任何符合公共声明规则的未注册声明的名称/密钥都是公共声明,否则为私有声明。 您能否提供一个更直接的例子?【参考方案2】:公共声明类似于为公共消费定义的公共 API。它们应该有据可查。 RFC7519 定义了几种方法。
-
您可以在 RFC 中指定的公共 IANA“JSON Web 令牌声明”注册表中注册公共声明名称。有整个审批流程。见section 10.1https://www.rfc-editor.org/rfc/rfc7519#section-10.1
您必须确保公共声明名称是抗冲突的,即极不可能与其他名称发生冲突。例如UUID、OID 或Domain names
私有声明是只有 JWT 的生产者和消费者知道的声明。私有声明名称不耐碰撞,应在清楚了解这一点并小心使用时...
【讨论】:
以上是关于jwt上的私人和公共索赔有啥区别的主要内容,如果未能解决你的问题,请参考以下文章
我将“朋友班 xxxxx”放在公共部分还是私人部分有区别吗?