Azure 服务主体检查自己的密码到期日期

Azure service principal check his own password expiration date

我们有一个配置了服务主体的应用程序,以便授予对 Azure 资源的访问权限。 此服务主体的密码配置了过期时间。

我们希望将我们的应用程序配置为了解他的服务主体凭据密码到期日期。 哪种方式最好地授予服务主体对他自己的到期日期的访问权限?

默认情况下不允许这样做。

az ad app show --id xxxxxxxxxx

Insufficient privileges to complete the operation.

但可以启用一些 API 权限 (旧版 Azure Active Directory Graph /Directory.Read.All) 它可以工作,但这似乎太开放了。

有什么方法可以授予访问权限以仅查看来自他自己的应用程序 ID 的数据?哪种方法最好?

AFAIK,看来你做不到。至少你需要授予 Application.ReadWrite.All 权限。命令 az ad app show --id xxxxxx 实质上调用了 azure 广告图 api,您可以使用 --debug.

检查

要调用此 api,从最低到最高特权,它需要 Application.ReadWrite.OwnedByApplication.ReadWrite.AllDirectory.Read.All。在您的情况下,Application.ReadWrite.OwnedBy 不是一个选项。

另外,我也测试过az ad signed-in-user show,如果你用AD App登录,貌似不支持使用这个命令。

备选方案:Key vault 秘密到期日可用作通知您 SP 到期的选项,但设置可能需要大量工作。

创建 SP 时,您指定有效期 - 3 个月、6 个月、1 年等。 设置到期日期后,您可以设置具有相同到期日期的密钥保管库机密。 在到期日期到来之前,事件网格通知可以触发 Azure 函数更新密钥。

有关使用 Key vault、Event Grid 和 Azure Functions 进行密钥轮换的更多详细信息,请参阅 https://docs.microsoft.com/en-us/azure/key-vault/secrets/tutorial-rotation