【问题标题】:What is difference between private and public claims on jwtjwt上的私人和公共索赔有什么区别
【发布时间】:2018-08-19 07:55:24
【问题描述】:

关于 jwt 的私有声明和公共声明有什么区别?

我对这两种说法之间的区别感到困惑。据我了解,它们都是自定义声明。那么有什么区别呢?

【问题讨论】:

    标签: authentication jwt claims


    【解决方案1】:

    公开声明

    需要抗冲突的自定义声明名称。它们的名称应该是 UUID 或以 URL 为前缀,以便为它们创建安全的命名空间并避免冲突。

    私人声明

    不需要抗冲突的自定义声明名称。

    关于 jwt 的私有声明和公共声明有什么区别?

    唯一的区别是公共声明必须具有普遍的抗碰撞性,而私有声明则不需要。

    【讨论】:

    • 感谢您的回复。如何设置公共声明和私人声明?
    • 由于 JWT 有效负载是 JSON,从技术上讲,您可以将任何键/值对作为声明放入其中并对其进行签名。任何符合公共声明规则的未注册声明的名称/密钥都是公共声明,否则为私有声明。
    • 您能否提供一个更直接的例子?
    【解决方案2】:

    公共声明类似于为公共消费定义的公共 API。它们应该有据可查。 RFC7519 定义了几种方法。

    1. 您可以在 RFC 中指定的公共 IANA“JSON Web 令牌声明”注册表中注册公共声明名称。有整个审批流程。见section 10.1https://www.rfc-editor.org/rfc/rfc7519#section-10.1
    2. 您必须确保公共声明名称是抗冲突的,即极不可能与其他名称发生冲突。例如UUIDOIDDomain names

    私有声明是只有 JWT 的生产者和消费者知道的声明。私有声明名称不耐碰撞,应在清楚了解这一点并小心使用时...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-10
      • 1970-01-01
      • 2018-05-17
      • 2011-05-20
      • 1970-01-01
      相关资源
      最近更新 更多