我的api受“Azure AD OAuth 2.0”保护有问题。我们希望让我们的员工访问我们的api(无需任何最终用户互动/批准)
我曾经复制过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"
}
]
}