代码之家  ›  专栏  ›  技术社区  ›  Lahiru Chandima

在JWT中包含OAuth作用域可以吗?

  •  1
  • Lahiru Chandima  · 技术社区  · 6 年前

    我正在将OAuth授权服务器端点添加到现有应用程序中。我计划从OAuth令牌端点发布JWT。

    当为特定OAuth作用域颁发令牌时,最好将为其颁发令牌的作用域嵌入令牌本身,因为当客户端稍后使用颁发的令牌执行某些操作时,通过查看令牌更容易验证令牌是否有权执行特定操作。

    standard claim fields JWT似乎没有包含适当的字段来标记OAuth作用域。

    那么,在JWT中是否可以将范围作为自定义声明包括进来?在JWT中嵌入范围细节还有其他方法吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Kavindu Dodanduwa    6 年前

    RFC7519 为您提供插入和使用非标准/注册索赔的能力。这是突出显示的 4.3. Private Claim Names 本规范第节。

    是私有名称:不是注册声明名称的名称

    此外,如果你是在标准注册索赔,他们可以在这里找到- https://www.iana.org/assignments/jwt/jwt.xhtml

    或者,如果您只对使用标准声明感兴趣,并且只将它们与JWT访问令牌一起使用(我假设您引用的JWT是一个访问令牌),那么您可以定义 token introspection endpoint introspection response

        2
  •  0
  •   Mitar    4 年前

    现在有了 JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens 许多人已经在实践中使用的草案(可能很快就会成为标准)。在节中 2.2.2 它明确指出:

    如果授权请求包含作用域参数,则相应的已发布JWT访问令牌必须包含[TokenExchange]第4.2节中定义的作用域声明。

    作用域声明中的所有单个作用域字符串对于aud声明中指示的资源都必须具有意义。

    所以它不仅被允许 scope 请求,但如果请求中有请求,则它甚至是必需的。

    推荐文章