【问题标题】:Bicep - Get Service Principal ID from App IDBicep - 从 App ID 获取服务主体 ID
【发布时间】:2022-12-05 17:30:41
【问题描述】:

我想使用 ADO 管道中使用的服务连接的主体 ID 在 bicep 中创建一个 roleAssignment。
由于在 terraform 中 bicep 中没有 self-method,因此我尝试获取所使用的 ARM 服务连接的服务主体 ID。我找到的唯一解决方案是 ADO 管道的以下任务:

- task: AzureCLI@2
  displayName: Retrieve principal ID of service connection
  continueOnError: false
  inputs:
    azureSubscription: $(armServiceConnectionName)
    scriptType: bash
    scriptLocation: inlineScript
    addSpnToEnvironment: true
    inlineScript: echo "##vso[task.setvariable variable=servicePrincipalId]$servicePrincipalId"

这将返回服务连接的服务主体的 App ID。

是否可以从此应用程序 ID 获取主体 ID?

我在 here 记录的二头肌中尝试了以下操作:

armPrincipalId = split(extensionResourceId(armConnectionPrincipalAppId, 'Microsoft.ManagedIdentity/userAssignedIdentities', armServiceConnectionName), '/')[8]

但这会导致以下错误:
DeploymentOutputEvaluationFailed: The template output 'armPrincipalId' is not valid: Unable to evaluate template language function 'extensionResourceId': the provided parent resource id '***' is not a valid uri

这显然是行不通的,因为它需要二头肌资源生成的 uri 形 ID。但是我只有一个UID。

【问题讨论】:

    标签: azure-pipelines azure-resource-manager arm-template azure-bicep


    【解决方案1】:

    我通过扩展 ADO 管道任务的 inlineScript 找到了解决方案:

    - task: AzureCLI@2
      displayName: Retrieve principal ID of service connection
      continueOnError: false
      inputs:
        azureSubscription: $(armServiceConnectionName)
        scriptType: bash
        scriptLocation: inlineScript
        addSpnToEnvironment: true
        inlineScript: echo "##vso[task.setvariable variable=armConnectionPrincipalId]$(az ad sp show --id $servicePrincipalId --query id --out tsv)"
    

    我现在使用 az ad sp show 搜索主体 ID:az ad sp show --id $servicePrincipalId --query id --out tsv

    如果有任何可能在 bicep 中使用当前用户主体(没有任何额外的 ADO 任务),这仍然是一个 hacky 解决方案,请随时在此处发布另一个解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-05
      • 2016-11-14
      • 1970-01-01
      • 2013-01-05
      • 2022-08-04
      • 2022-12-17
      • 1970-01-01
      相关资源
      最近更新 更多