gpt4 book ai didi

asp.net-web-api - 每个资源服务器的 JWT 多个受众

转载 作者:行者123 更新时间:2023-12-04 18:00:41 25 4
gpt4 key购买 nike

在花费数小时研究使用 OWIN 在 Web API 中使用 JWT 之后,我仍然对 Audience 的目的表示很困惑。有些页面说观众是将在其上验证 token 的资源服务器。其他人则认为 audience 是访问资源服务器的客户端,实际上经常将此值互换为 client_id 和 audience。

根据 JWT 规范,Audience 似乎旨在成为资源服务器 (https://www.rfc-editor.org/rfc/rfc7519#page-9)。因此,我认为没有必要为每个 API 应用程序拥有一个以上的受众。但是许多实现正在向单个 Web API 应用程序添加多个受众,并且 Microsoft 的 JwtBearerAuthenticationOptions 实现也允许这样做。

在这些实现中,他们交替使用受众和 client_id(这里是一个示例:https://auth0.com/docs/server-apis/webapi-owin)我觉得这将您的资源服务器与您的客户端紧密耦合,并在您的资源服务器上强制执行客户端声明。我觉得这是身份验证服务器的工作(因此能够根据 JWT 规范向 token 添加多个受众声明)。

我觉得我在这里遗漏了一些重要的东西。我的目标是能够开发可供多个客户端使用的多个 API,但必须在资源服务器和授权服务器上动态管理受众声明似乎违背了 JWT 的精神。然而,许多人已经以其他方式实现了它,甚至 MS 也允许每个资源服务器有多个受众,所以我希望在这里能说明一些问题。

最佳答案

audience 标识 token 的预期“消费者”。通常是应用程序 (API) 从客户端应用程序接收 token 。

期望 JWT 的服务需要检查(并验证)audience 以防止某人发送(有效的)用于其他人的 token 。

您可以想象这样一种情况,例如 API-1API-2 同时使用基于角色的安全性,并且用户获得声明 admin 用于 API-1。如果 API-2 不检查 audience,则用户有可能发送 token (其中包含管理员声明)并成功(当它不应该发送时)。

关于asp.net-web-api - 每个资源服务器的 JWT 多个受众,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35878665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com