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

问题描述 投票:0回答:3

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

当我进入“添加权限”时,“应用程序权限”显示为灰色,我只能选择“委派权限”。

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

来自“应用程序权限”的帮助文本:

您的应用程序作为后台服务或守护程序运行,无需登录用户。

“委派权限”的帮助文本:

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

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

azure azure-active-directory azure-ad-b2b
3个回答
37
投票

据我了解,您正在公开受 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"
        }
    ]

然后就会出现申请权限。


0
投票

实际上你并没有以这种方式授予它权限。真是令人困惑。相反,您可以将注册的应用程序添加到订阅中并通过 IAM 应用读者角色。请看这里:

https://medium.com/@crlmas07/programmatic-access-to-azure-portal-d925ea90831e


0
投票

猜测要使用此功能,您必须首先创建证书或客户端密钥。这可以直接在以下菜单下完成:

  • Manage
    Certificates & secrets
© www.soinside.com 2019 - 2024. All rights reserved.