Azure应用注册时的API权限问题

时间:2019-06-11 22:22:55

标签: azure azure-active-directory

我有一个在Azure Active Directory->应用程序注册下注册的API应用程序。该API应用程序公开了端点,这些端点将由组织内部的客户端访问。客户端不是用户,而是将访问端点的后台服务。

当我尝试授予客户端访问API应用程序的API权限时,我看到该应用程序权限为禁用/灰色。设置API权限时是否需要做其他事情。

请参阅所附图片。

有没有人遇到这个问题,或者我在做些愚蠢的事情。我们组织中的Azure管理员告诉我他对此无能为力,因为他之前从未见过这样的事情。

enter image description here

1 个答案:

答案 0 :(得分:1)

很可能您没有为应用程序注册定义任何角色(即应用程序权限),因此,当您尝试为客户端应用程序添加权限时,您只会看到“委派权限”选项。

如何定义角色/应用程序权限

转到Azure门户> Azure AD>应用程序注册> API应用程序的注册>清单

在Manifest JSON中找到“ appRoles”集合,如果为空,请在此处添加您自己的appRoles。示例:

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

请注意,我将“ allowedMemberTypes”保留为“应用程序”,因此只能将其用作“应用程序许可”。另一种可能性是将“用户”作为allowedMemberType,但这是当您想为用户分配角色时的另一种用例,而这并不是您想要的。

现在,如果您要向其授予此角色(应用程序权限)的客户端应用程序注册,则应该能够看到“应用程序权限”已启用。

您还应该能够看到“应用程序权限”“ MyAPIValidClient”及其描述,以供选择。现在,在上面的示例中,我仅定义了一个“应用程序许可”,但是如您所见,它是一个数组,因此您也可以定义多个。只需确保为每个应用程序许可生成新的GUID,并将其作为“ id”。

enter image description here