使用azure cli创建后如何检索服务主体密码?

时间:2020-03-04 22:22:19

标签: azure azure-active-directory

当我使用诸如此类的az cli工具创建服务主体时

az ad sp create-for-rbac --name <name>

我打印了所有信息

{
  "appId": "...",
  "displayName": "...",
  "name": "...",
  "password": "...",
  "tenant": "..."
}

一切都很好,但是我以后如何检索该信息?使用

az ad sp list --display-name <name>

确实给了我想要的东西,但是我却缺少password。如何在不重置密码的情况下获取密码?

2 个答案:

答案 0 :(得分:6)

如何在不重置密码的情况下获取密码?

简而言之,不可能

使用公用az ad sp create-for-rbac创建服务主体时,具有密码身份验证的服务主体的输出包括密码密钥。 确保您复制此值-无法找回。如果忘记密码,reset the service principal credentials

从Azure CLI 2.0.68开始,不再支持使用用户定义的密码创建服务主体的--password参数,以防止意外使用弱密码。

使用az ad sp show --id xxxxx获取服务主体的详细信息时。 (自动生成)passwordCredentials始终为null,因此,密码只能在创建时检索。

enter image description here

答案 1 :(得分:4)

要获取密码,您可以改为运行此命令

az ad sp create-for-rbac --name $NAME --query password -o tsv

如果您想获取 objectId 或 appId

你可以运行这个命令

# objectId
az ad sp list --display-name $NAME --query [].objectId -o tsv

# appId
az ad sp list --display-name $NAME --query [].appId -o tsv