【翻译】4.1. 已注册的声明的名字

原文链接:RFC 7519: JSON Web Token (JWT) 4.1. Registered Claim Names

前言:由于对JWT中的声明不太了解,所以翻译JWT官方文档中有关已注册的声明的部分。以下是正文。

 

下列声明的名字已在章节10.1确立的IANA“JSON网络令牌声明”注册中心注册。它们都不强制使用。使用JWT的应用程序应该定义自己使用的声明,以及这些声明是必需的还是可选的。声明的名字都很短,因为JWT的主要目标之一是紧凑。

4.1.1. “iss”(签发者)声明

“iss”(签发者)声明指明了JWT的签发者。不同的应用对此声明有不同的处理方式。“iss”的值是一个区分大小写的StringOrURI字符串。此声明不是必须的。

4.1.2. “sub”(主体)声明

“sub”(主体)声明指明了JWT的主体。JWT中的声明通常都是对此主体的描述。主体的值要么在签发者处惟一,要么全局惟一。不同的应用对此声明有不同的处理方式。“sub” 的值是一个区分大小写的字符串,此字符串包含一个StringOrURI值。此声明不是必须的。

4.1.3. “aud”(受众)声明

“aud”(受众)声明指明了JWT的解读者。每个要解读JWT的主体必须将自身写入受众声明。如果处理声明的主体发现JWT中包含“aud”声明且没在“aud”声明中找到与自身匹配的值,则必须拒绝该JWT。一般情况下,“aud”的值是一个区分大小写的字符串数组,每个字符串包含一个StringOrURI值。特殊情况下,当JWT只有一个受众时,“aud”值可以是一个区分大小写的字符串,包含一个StringOrURI值。不同应用可以按自己的方式解读受众的值。此声明不是必须的。

4.1.4. “exp”(过期时间)声明

“exp”(过期时间)声明指明了JWT的过期时间,在此时间后它不能再被处理。规范要求当前日期/时间必须在“exp”声明的过期日期/时间之前。由于时钟可能有偏差,实现者可以留有小小余地,通常不超过几分钟。它的值必须是一个包含NumericDate值的数字。此声明不是必须的。

4.1.5. “nbf”(生效时间)声明

“nbf”(not before)声明指明了此JWT能开始接受处理的时间。规范要求当前日期/时间必须在“nbf”声明的日期/时间之后或与之相等。由于时钟可能有偏差,实现者可以留有小小余地,通常不超过几分钟。它的值必须是一个包含NumericDate值的数字。此声明不是必须的。

4.1.6. “iat”(签发时间)声明

“iat”(签发时间)声明指明了JWT签发的时间。此声明可用于计算JWT的年龄。它的值必须是一个包含NumericDate值的数字。此声明不是必须的。

4.1.7. “jti”(JWT ID)声明

“jti”(JWT ID)声明为JWT提供唯一标识符。必须确保相同的值分配给不同数据对象的概率小到忽略不计;如果应用有多个签发者,多个签发者提供的值不能相同。“jti”声明可以防止JWT重播。“jti”的值是区分大小写的字符串。此声明不是必须的。

 

其他选译部分

2 术语

StringOrURI

一种有额外要求的JSON字符串值。额外要求是:可以使用任意字符串值,但是包含“:”字符的值必须是URI [RFC3986]。StringOrURI值在比较时要区分大小写,而且不需要转换或规范化。

NumericDate

一个JSON数值,表示从1970-01-01T00:00:00Z UTC到指定的UTC日期/时间的秒数,忽略闰秒。这相当于IEEE Std 1003.1, 2013版[POSIX. 1]定义的“自纪元以来的秒数”,每一天都是86400秒,而且,此值可以为非整数。参见RFC 3339 [RFC3339]了解日期/时间的一般细节和UTC的特别细节。

posted @ 2023-02-12 13:16  Halloworlds  阅读(66)  评论(0编辑  收藏  举报