为什么在Azure AD的“请求API权限”中禁用“应用程序权限”?

时间:2019-08-06 15:28:42

标签: azure azure-active-directory azure-ad-b2b

我正在尝试授予控制台应用程序权限以在Azure AD中调用API。

当我转到“添加权限”时,“应用程序权限”显示为灰色,我只能选择“授权权限”。

我的理解是,应用程序权限适用于控制台应用程序,因为它在后端运行,并且用户未登录。

从“应用程序权限”的帮助文本中:

  

您的应用程序在没有登录用户的情况下作为后台服务或守护程序运行。

“授权权限”的帮助文本:

  

您的应用程序需要以登录用户身份访问API。

为什么禁用“应用程序权限”?

Azure's "Request API permissions" dialog with a disabled "application permission" button

1 个答案:

答案 0 :(得分:9)

据我了解,您将公开受Azure AD保护的自定义api。如果是这样,您需要通过编辑api应用的清单define the application permission

enter image description here

清单:

"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"
        }
    ]

然后将显示应用程序许可权。

enter image description here