在 Azure AD 中请求 API 权限时,应用程序权限显示为灰色

时间:2021-06-15 10:07:56

标签: azure azure-active-directory

进一步: API Permission Issue while Azure App Registration

Why is "Application permissions" disabled in Azure AD's "Request API permissions"?

当我尝试在 Active Directory 中注册应用程序时,我无法激活 API 权限中的应用程序权限按钮。我已经创建了角色(多次)并确保所有属性都是正确的,如两篇文章和 https://docs.microsoft.com/en-us/azure/active-directory/develop/scenario-protected-web-api-app-registration 中所述 - 包括角色是为应用程序设置的,。我使用的是 Azure 帐户的默认目录。我是我目录中的唯一成员,并且是全局管理员的成员。

还有什么我遗漏的吗?

我的最终目标只是使用 .Net SDK 来管理应用程序服务上的防火墙,并使用可随应用程序分发的客户端机密。

enter image description here

这是清单

enter image description here

2 个答案:

答案 0 :(得分:1)

好的,所以您希望应用注册通过 Azure 资源管理 API 作为其本身使用客户端凭据流来管理应用服务? 在这种情况下,您不需要为您的应用程序分配任何应用程序权限。 您需要创建应用程序,然后转到例如应用服务资源的访问控制 (IAM) 选项卡,并将所需的角色添加到您的应用中。

应用权限选项卡显示灰色的原因是 Azure 服务管理应用注册(您无法编辑)未定义任何应用权限。 在清单中定义应用权限后,该权限将成为其他应用程序可用于调用您的 API(而非 Azure 资源管理 API)的权限。

答案 1 :(得分:1)

<块引用>

还有什么我遗漏的吗?

Applications Permissions 对您显示为灰色的原因是因为 Azure Service Management API 只允许 Delegated Permissions,即此 API 将始终在登录用户的上下文中执行。换言之,用户(即使是服务主体)在执行此 API 时必须始终在场。

您提到要使用客户端密钥执行服务管理 API。为此,您需要做两件事:

  1. 正如@junnas 所提到的,您需要在 Azure 订阅上为您的应用程序(即服务主体)分配适当的 Azure RBAC 角色。请参阅此链接了解更多详情:https://docs.microsoft.com/en-us/azure/role-based-access-control/overview

  2. 您需要使用客户端 ID 和客户端密钥获取此服务主体的令牌。为此,您可以使用 ClientSecretCredential