Skip to content

Commit ffcbd12

Browse files
authored
Use System.OidcRequestUri (#61)
* Use AZURESUBSCRIPTION_SERVICE_CONNECTION_ID * Use SYSTEM_OIDCREQUESTURI * Use api-version=7.1
1 parent fa0692d commit ffcbd12

File tree

1 file changed

+5
-19
lines changed

1 file changed

+5
-19
lines changed

scripts/azure-devops/set_terraform_azurerm_vars.ps1

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,37 +31,23 @@ if ($env:SYSTEM_DEBUG -eq "true") {
3131
Get-ChildItem -Path Env: -Force -Recurse -Include * -Exclude *TOKEN | Sort-Object -Property Name | Format-Table -AutoSize | Out-String
3232
}
3333

34-
function Get-OidcRequestUrl()
35-
{
36-
# Get Service Connection ID
37-
Get-ChildItem -Path Env: -Recurse -Include ENDPOINT_DATA_* | Select-Object -First 1 -ExpandProperty Name `
38-
| ForEach-Object { $_.Split("_")[2] }
39-
| Set-Variable serviceConnectionId
40-
if (!$serviceConnectionId) {
41-
throw "Unable to determine service connection ID"
42-
}
43-
$oidcRequestUrl = "${env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI}${env:SYSTEM_TEAMPROJECTID}/_apis/distributedtask/hubs/build/plans/${env:SYSTEM_PLANID}/jobs/${env:SYSTEM_JOBID}/oidctoken?api-version=7.1-preview.1&serviceConnectionId=${serviceConnectionId}"
44-
Write-Debug "OIDC Request URL: ${oidcRequestUrl}"
45-
return $oidcRequestUrl
46-
}
47-
4834
function New-OidcToken()
4935
{
5036
Write-Verbose "`nRequesting OIDC token from Azure DevOps..."
51-
Get-OidcRequestUrl | Set-Variable oidcRequestUrl
52-
Write-Debug "OIDC Request URL: ${oidcRequestUrl}"
37+
$oidcRequestUrl = "${env:SYSTEM_OIDCREQUESTURI}?api-version=7.1&serviceConnectionId=${env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID}"
5338
Invoke-RestMethod -Headers @{
5439
Authorization = "Bearer ${SystemAccessToken}"
5540
'Content-Type' = 'application/json'
5641
} `
5742
-Uri "${oidcRequestUrl}" `
58-
-Method Post | Set-Variable oidcTokenResponse
43+
-Method Post `
44+
| Set-Variable oidcTokenResponse
5945
$oidcToken = $oidcTokenResponse.oidcToken
6046
if (!$oidcToken) {
61-
throw "Could not get OIDC token"
47+
throw "Could not get OIDC token from ${oidcRequestUrl}"
6248
}
6349
if ($oidcToken -notmatch "^ey") {
64-
throw "OIDC token in unexpected format"
50+
throw "OIDC token from ${oidcRequestUrl} has unexpected format"
6551
}
6652
return $oidcToken
6753
}

0 commit comments

Comments
 (0)