Azure管道在脚本中获取应用程序客户端ID
我的DevOps中有一个管道,用于构建和部署应用程序。这是成功的。 作为部署的一部分,我需要使用应用程序的客户端ID更新configuration.json文件。为了实现这一点,我正在执行:Azure管道在脚本中获取应用程序客户端ID,azure,azure-devops,azure-pipelines,azure-cli,Azure,Azure Devops,Azure Pipelines,Azure Cli,我的DevOps中有一个管道,用于构建和部署应用程序。这是成功的。 作为部署的一部分,我需要使用应用程序的客户端ID更新configuration.json文件。为了实现这一点,我正在执行: $clientID = az ad app list --display-name "MyApplication" --query [0].appId 我已经创建了一个“Azure CLI”步骤,并且正在以服务主体的角色执行此步骤,但是当它运行时,我收到一个错误“权限不足,无法完成操作
$clientID = az ad app list --display-name "MyApplication" --query [0].appId
我已经创建了一个“Azure CLI”步骤,并且正在以服务主体的角色执行此步骤,但是当它运行时,我收到一个错误“权限不足,无法完成操作”。我需要更改的位置或权限
管道步骤说明:
- Azure CLI
- 类型:Powershell核心
- 脚本路径:有效路径
目录。ReadAll
权限后,我成功地运行了它
并将此主体添加到全局管理员组。另一个答案只正确了一半而且不好,委托权限
目录。请阅读。Microsoft Graph
中的所有在这种情况下都不起作用,将全局管理员
角色赋予服务主体将起作用,但是此权限太大,如果您不想造成一些安全问题,请尝试不使用它
要解决此问题,您只需向应用程序授予Directory.Read.All
权限Azure Active Directory Graph
,您可以按照以下步骤操作
1.导航到devops中的项目设置
服务连接
->查找您使用的服务连接->单击管理服务主体
2.然后它将打开服务主体的Azure AD应用程序页面,导航到API权限
->添加应用程序权限目录。阅读Azure Active Directory图形的所有
,如下所示(注意:应该是Azure Active Directory图形
,而不是Microsoft图形
)
最后别忘了点击授予xxx管理员许可
按钮
过一段时间,再次尝试该命令,它将正常工作。谢谢,这是非常广泛的,我没有单击“授予管理员同意…”,但我相信问题在于运行“az广告应用程序列表”。我似乎没有得到允许detail@Adrianaz广告应用程序列表
实质上调用AAD图,因此您需要在AAD图中授予权限。请按照我的回答,不要错过任何步骤,您必须单击授予管理员许可
按钮,相信我,我已经帮助很多人解决了类似的问题。