在受 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"
}
]
}
我的 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"
}
]
}