【发布时间】:2020-01-09 22:39:43
【问题描述】:
我正在尝试在 AzureDevops 中创建一个版本来检查 SP 机密的到期情况,然后在必要时对其进行更新。我有做检查的部分:
param (
[string]$SpId
)
$SpSecret
$SpEndDate = az ad sp credential list --id $SpId --query "[].{Key:endDate}" -o tsv
((Get-Date $SpEndDate).AddDays(-30) -lt (Get-Date)) {
#Set a new secret value if it is about to expire
$SpSecret = az ad sp credential reset --name $SpId --query password -o tsv
}
Write-Host "##vso[task.setvariable variable=var01;Secret=true]$SpSecret"
Write-Host $env:Secret
现在的问题是服务连接没有运行“z ad sp credential reset”的权限。我查看了连接,但没有看到有效的权限。有什么建议吗?
【问题讨论】:
-
运行管道的服务主体的权限是什么?您可以从您的 azure activie 目录中进行检查。它需要此 api 权限:`Application.ReadWrite.All` 或至少
Application.ReadWrite.OwnedBy如果服务主体已由其他服务主体创建 -
OwnedBy 可能会更好 + 将 SP 添加为所有者
-
az ad sp credential list是否在您的脚本中工作?你得到了什么确切的错误? -
我不在办公室,明天会查看您的回复。看起来像我需要的,如果需要,我将标记为答案。谢谢!
标签: azure azure-devops azure-active-directory devops