我正在尝试授予控制台应用程序调用 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
猜测要使用此功能,您必须首先创建证书或客户端密钥。这可以直接在以下菜单下完成:
Manage
→ Certificates & secrets