Azure KeyVault:如何检索现有服务主体的 clientId、clientSecret 和tenantId?

问题描述

我组织中的云工程师设置了 Azure keyvault 和服务主体。我知道此服务主体的 ID,但我还需要 clientIdclientSecrettenantId

The documentation 表明当您使用 Azure CLI 创建服务主体时,这些变量会公开给您,但在我的情况下,已经有一个。我没有创建新的凭据,坦率地说,我不需要。

那么,如何检索与现有服务主体关联的 clientIdclientSecrettenantId

解决方法

您可以使用 CLI 命令获取服务主体的 Client IdTenant Id,如下所示:

az ad sp list --query "[].{id:appId,tenant:appOwnerTenantId}"

您甚至可以获得更多服务主体的值 - 请参阅 ServicePrincipalInner 类。

此外,如评论中所述,您无法检索其他人创建的 Client Secret。你必须reset

az ad sp credential reset --name APP_ID