Azure 托管身份获取的 JWT 令牌不适用于 HotChocolate 授权

问题描述 投票:0回答:1

我有一个使用 HotChocolate v13 的简单 GraphQL 实现,其中多个解析器受到 Authorize HotChocolate 实现的保护,一旦为 Azure AD 用户传递 JWT 令牌,它就可以正常工作。

现在我有一个函数,需要使用通过使用托管身份函数获得的 JWT 从 GraphQL 端点调用查询,从而产生如下所示的响应:

{
  "errors": [
    {
      "message": "The current user is not authorized to access this resource.",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "me"
      ],
      "extensions": {
        "code": "AUTH_NOT_AUTHORIZED"
      }
    }
  ]
}

相同的 GraphQL api 有其他常规控制器,但受 asp.net Core [Authorize] 属性保护,并使用托管身份 JWT 令牌调用它们可以正常工作。

为什么会发生这种情况?意味着通过托管身份方法获得的 JWT 不适用于 HotChocolate GraphQL?

azure-managed-identity hotchocolate
1个回答
0
投票

要使用授权功能,您必须使用

[Authorize]
命名空间中的
HotChocolate
属性,而不是
Microsoft
命名空间中的属性。此外,您需要在架构构建器上调用
AddAuthorization

© www.soinside.com 2019 - 2024. All rights reserved.