花了几个小时使用OWIN在网页API使用JWT研究后,我还是什么观众的目的,代表了相当困惑。有些是说观众是在其令牌将被验证的资源服务器。其他人认为观众是访问资源服务器,并经常实际上是指这个值CLIENT_ID和受众互换客户端。
据智威汤逊规范它出现在观众旨在资源服务器(https://tools.ietf.org/html/rfc7519#page-9)。因此,我不认为有必要曾经有每个API应用不止一个观众。但是,许多实现添加多个观众到单个Web API的应用程序和微软的落实JwtBearerAuthenticationOptions的允许它。
在这些实现,他们使用的是观众和CLIENT_ID互换(这里是一个例子:https://auth0.com/docs/server-apis/webapi-owin)我觉得你的客户这也紧紧将你的资源服务器,并执行你的资源服务器上的客户端要求。我觉得这是验证服务器(因此根据JWT规范到多个观众索赔添加到令牌的能力)的工作。
我觉得我失去了一些东西这里重要的。我的目标是能够开发出能够被多个客户端使用,但必须动态管理要求观众在两个资源服务器和auth服务器似乎违背智威汤逊的精神多个API的。然而,许多人都否则执行它,甚至MS允许每个资源服务器多个观众,所以我希望一些清晰度在这里。
该audience
识别标记的预期的“消费者”。通常它是从客户机应用程序接收令牌的应用(API)。
该期望JWT需要检查(和验证)的audience
防止有人送这是意味着其他人(有效的)令牌服务。
你能想象在那里API-1和API-2同时使用基于角色例如安全的局势,以及用户获得了API-1要求管理。如果API-2不检查audience
有一个机会,用户可以(在它与管理要求)发送令牌和成功(当它不应该)。