如何在 Azure 中通过客户端 ID 查找身份?

问题描述

我有一个带有脚本的应用程序 (AWX),该脚本试图在 Azure 中执行操作(向虚拟机添加标签)。在 AWX 中,我收到以下错误,显然来自 Azure:msg: "Error retrieving resource group usw-sys-rg-001 - The client '9d...27' with object id '9d...27' does not have authorization to perform action 'Microsoft.Resources/subscriptions/resourcegroups/read' over scope '/subscriptions/83...4a/resourcegroups/usw-sys-rg-001' or the scope is invalid. If access was recently granted,please refresh your credentials."

似乎是简单明了的消息。正在使用的帐户/身份/委托人未经授权。问题是,错误消息中的客户端 ID 与我在 AWX 中拥有的任何凭据对象都不相关。特别是它与我在 AWX 中拥有的 Microsoft Azure 资源管理器凭据无关。由于不是这本 AWX 剧本的作者,我对这一切感到有些困惑。

由于错误似乎来自Azure,而且Azure似乎并没有说client id不存在,这让我觉得我应该能够在Azure中找到那个身份(大概是服务主体) 并检查其权限。但是,当我过滤应用注册时,我找不到与上述错误消息中的客户端 ID 匹配的条目。

如何在 Azure 门户中找到服务主体?还是别的什么?

我一定是看错了。有没有人有任何指示?非常感谢。

解决方法

首先,确保您在门户中登录到正确的 Azure AD 租户。

其次,导航到 Enterprise applications(不是 App registrations,因为某些服务主体在您的 AAD 租户中没有相应的应用注册,例如托管标识等)。

然后像下面这样用Azure Active Directory过滤,输入All Applications,然后你会找到它。

enter image description here