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”放在公共部分还是私人部分有区别吗?

我将“朋友班 xxxxx”放在公共部分还是私人部分有区别吗?

SonataMediaBundle 的公共和私人媒体上传到不同的文件夹(网络和私人)