“范围”是标准声明吗?

Fre*_*red 13 jwt openid-connect identityserver4

scopeOpenID Connect、JWT 或 OAuth 中是否有任何标准声明?

IdentityServer 4 文档中,有一个“范围”,它是一个空格分隔的字符串。

{
  "client_id": "mobile_app",
  "sub": "123",
  "scope": "read write delete"
}
Run Code Online (Sandbox Code Playgroud)

但从我的 IdentityServer 4 实例中,我在访问令牌中得到了一个“范围”声明,它是一个字符串数组。

{
  // ...
  "client_id": "mobile_app",
  "sub": "123",
  "scope": [ "openid", "profile", "email", "offline_access" ],
  "amr": [ "pwd" ]
}
Run Code Online (Sandbox Code Playgroud)

OpenID Connect Core 1.0规范中,我没有看到“范围”被列为声明。在RFC 7519 JSON Web Token (JWT) 规范中,我没有看到“范围”被列为声明。

Mic*_*ski 12

该声明由Token Exchangescope RFC标准化。根据规范,它应该是一个 JSON 字符串,并带有空格分隔的范围标记。

“scope”声明的值是一个 JSON 字符串,其中包含与令牌关联的以空格分隔的范围列表...