我正在尝试授予控制台应用程序在 Azure AD 中调用 API 的权限。
当我转到“添加权限”时,“应用程序权限”是灰色的,我只能选择“委派权限”。
我的理解是应用程序权限适用于控制台应用程序,因为它在后端运行并且用户不会登录它。
从“应用程序权限”的帮助文本中:
您的应用程序在没有登录用户的情况下作为后台服务或守护程序运行。
“委派权限”的帮助文本:
您的应用程序需要以登录用户的身份访问 API。
为什么禁用“应用程序权限”?
我正在尝试授予控制台应用程序在 Azure AD 中调用 API 的权限。
当我转到“添加权限”时,“应用程序权限”是灰色的,我只能选择“委派权限”。
我的理解是应用程序权限适用于控制台应用程序,因为它在后端运行并且用户不会登录它。
从“应用程序权限”的帮助文本中:
您的应用程序在没有登录用户的情况下作为后台服务或守护程序运行。
“委派权限”的帮助文本:
您的应用程序需要以登录用户的身份访问 API。
为什么禁用“应用程序权限”?
据我了解,您正在公开受 Azure AD 保护的自定义 api。如果是这样,您需要通过编辑您的 api 应用程序的清单来定义应用程序权限。
显现:
"appRoles": [
{
"allowedMemberTypes": [
"Application"
],
"description": "Apps that have this role have the ability to invoke my API",
"displayName": "Can invoke my API",
"id": "fc803414-3c61-4ebc-a5e5-cd1675c14bbb",
"isEnabled": true,
"lang": null,
"origin": "Application",
"value": "myTestRole"
}
]
然后将显示应用程序权限。
您实际上并没有以这种方式授予它权限。这真的很混乱。相反,您将注册的应用程序添加到您的订阅并应用读者角色,有点通过 IAM。看这里:
https://medium.com/@crlmas07/programmatic-access-to-azure-portal-d925ea90831e