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

为什么Azure AD的“请求API权限”中禁用了“应用程序权限”?,azure,azure-active-directory,azure-ad-b2b,Azure,Azure Active Directory,Azure Ad B2b,我正在尝试授予控制台应用程序在Azure AD中调用API的权限 当我转到添加权限时,应用程序权限将变灰,并且我只能选择委派权限 我的理解是,应用程序权限适用于console应用程序,因为它在后端运行,用户不登录 从应用程序权限的帮助文本中: 您的应用程序作为后台服务或守护程序运行,无需登录用户 授权权限的帮助文本: 您的应用程序需要作为登录用户访问API 为什么禁用应用程序权限 据我所知,您正在公开受Azure AD保护的自定义api。如果是这样,您需要通过编辑api应用程序的清单来完成此操作

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

当我转到添加权限时,应用程序权限将变灰,并且我只能选择委派权限

我的理解是,应用程序权限适用于console应用程序,因为它在后端运行,用户不登录

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

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

授权权限的帮助文本:

您的应用程序需要作为登录用户访问API

为什么禁用应用程序权限


据我所知,您正在公开受Azure AD保护的自定义api。如果是这样,您需要通过编辑api应用程序的清单来完成此操作

舱单:

然后将显示应用程序权限


您是否在appRoles数组中为API定义了应用程序权限?您必须在azure portal中创建租户。权限变灰,因为您已创建应用程序而未创建租户。如果你还有更多,请告诉我query@MdFaridUddinKiron我肯定有租户……我不认为这是问题所在。@juunas不,我会用这些关键字检查文档。就是这样!我手动生成了新角色PowerShell>new GUID>Enter的id属性的GUID。我不知道是否有办法在门户中实现,或者它是否必须是一个GUID,但它接受了它。注意,与直觉相反,displayName不能包含空格。根据链接文档。这似乎是微软应该为之构建GUI/UI刀片的东西,不是吗?Approvles条目中的ID是什么?您试图授予访问权限的API的id?或者你正在编辑的应用程序?还是别的什么@Journeyman1234是的,请注意id必须是唯一的GUID。
"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"
        }
    ]