我能否以编程方式为 Azure 服务主体创建新密码?

Can I programmatically create new passwords for Azure Service Principals?

我正在尝试制作一个程序来对 Azure 资源进行秘密轮换。我要轮换的机密之一是服务主体密码。我想知道我是否能够以编程方式执行以下操作:

  1. 为现有服务主体创建新密码
  2. 删除现有服务主体的密码

我无法在 C# sdk、REST API、cli 或 Powershell 的文档中找到任何内容。任何帮助,将不胜感激。谢谢!

试试下面的 powershell 命令。

创建新密码:New-AzureADApplicationPasswordCredential

删除密码:Remove-AzureADApplicationPasswordCredential

这是可以使用 Azure CLI 实现的相对简单的内容。确保安装了 Azure CLI 2.0。要管理 SP 的使用:az ad sp(检查它对 az ad sp --help 的作用)。 要管理凭据,请使用:az ad sp credential(它有 delete/list/reset 个可用命令)。使用此 CLI 命令,您应该能够达到预期的效果。

Powershell 和 CLI:

az ad sp credential reset --name <objectid>

Github 上有这个小实用程序,它通过 azure 函数旋转它。具有托管标识的 C# 代码

https://github.com/3mcloud/azure-keyvault-rotator

https://abschmidt.medium.com/rotating-service-principal-secrets-automatically-in-azure-key-vault-c4f04a84c9af