在受 Azure Ad OAuth 保护的 api 中看不到范围声明

Cant see scope claims in Azure Ad OAuth-protected api

我的 api 有问题,它受 "Azure AD OAuth 2.0" 保护。我们想让我们的同事访问我们的 api(没有任何最终用户 interaction/approvals)

我曾经复制过 this example,上次尝试时,我可以从我的 api 代码中看到我们客户发送的索赔。现在我不能了。

.

这是我在 Azure 中的设置

.

这是我在 ClaimsPrincipal.Current 上看到的 .

我希望看到两个范围声明。我做错了什么或如何开始查找错误?

好吧,简单地说,因为当应用程序代表用户调用 API 时,委派权限适用。 您的场景中没有用户,因此只有应用程序权限适用。

在这种情况下,您应该定义应用程序权限并将它们授予您的应用程序。 然后,您可以在 roles 声明中找到它们的值。

这是我关于这个主题的文章:https://joonasw.net/view/defining-permissions-and-roles-in-aad

这是在 API 的清单中定义的示例权限:

{
  "appRoles": [
  {
    "allowedMemberTypes": [
      "Application"
    ],
    "displayName": "Read all todo items",
    "id": "f8d39977-e31e-460b-b92c-9bef51d14f98",
    "isEnabled": true,
    "description": "Allow the application to read all todo items as itself.",
    "value": "Todo.Read.All"
  }
  ]
}