JWT 验证应该在 APIM+AZ 函数堆栈中的什么位置发生?

Where is JWT Validation Supposed to happen in APIM+AZ Function stacks?

我不清楚我是否错过了 API 管理 Gateway/Azure 功能通信工作的方式。初始请求应该包含一个 JWT,其中包含与用户角色相关的服务器签名断言。

在 APIM/Azure 函数中,有一个 'shared secret' 的概念用于验证 B2B 通信。这意味着两个系统之间存在某种程度的信任。

显然,我可以在这两个地方实施 JWT 验证,但我找不到任何来自 Microsoft 或类似公司的文档说“这就是你 应该的方式” 去做。'.

• Microsoft 没有关于 APIM 中 JWT 验证的官方文档,因为大多数文档都与 usage of authentication, access restriction, caching, cross-domain, distributed application runtime, integration, transformation, etc. in APIM 相关的政策相关。但是你肯定可以参考下面的link,这不亚于一个文档,详细解释了如何使用API​​M中的策略来实现工作空间中定义的各种操作的结果.

https://azure.github.io/apim-lab/apim-lab/7-security/apimanagement-7-1-JWT-Validation.html

• 根据上述 link,JWT 验证发生在 Azure B2B 端,因为颁发给应用服务的令牌根据授予访问时定义的已配置授权和访问策略进行验证执行应用程序服务所需的操作。为了您的确认目的,您可以添加 validate the JWT policy for the concerned app service in your APIM 如下所示 link 以确认发生 JWT 验证的来源。为此,您需要 orchestration app like ‘Postman’ and create a corresponding app registration in Azure AD 以获得正确的验证结果:-

https://carldesouza.com/adding-a-validate-jwt-policy-to-azure-api-management/

在上面的link中,您将全面了解payload、header和签名部分包含的需要验证的各种参数,以确保JWT是正品。