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

Tom*_*son 8 azure azure-active-directory

当我使用az像这样的cli 工具创建服务主体时

az ad sp create-for-rbac --name <name>
Run Code Online (Sandbox Code Playgroud)

我打印了所有信息

{
  "appId": "...",
  "displayName": "...",
  "name": "...",
  "password": "...",
  "tenant": "..."
}
Run Code Online (Sandbox Code Playgroud)

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

az ad sp list --display-name <name>
Run Code Online (Sandbox Code Playgroud)

确实给了我几乎我想要的东西,但我错过了password. 如何在不重置密码的情况下找回密码?

Joe*_*Cai 9

如何在不重置密码的情况下找回密码?

总之,不可能

当您使用 commondaz ad sp create-for-rbac创建服务主体时,具有密码身份验证的服务主体的输出包括密码密钥。确保复制此值 - 它无法检索。如果忘记密码,请重置服务主体凭据

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

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

在此处输入图片说明


mee*_*pol 5

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

az ad sp create-for-rbac --name $NAME --query password -o tsv
Run Code Online (Sandbox Code Playgroud)

如果您想获取 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
Run Code Online (Sandbox Code Playgroud)

  • 这不会获取已用于创建 sp 的密码,这会重置其密码并返回新密码。 (8认同)