Skip to content

Commit c2d533c

Browse files
authored
Added AZURESUBSCRIPTION_CLIENT_ID and AZURESUBSCRIPTION_TENANT_ID env vars (#19818)
Added AZURESUBSCRIPTION_CLIENT_ID and AZURESUBSCRIPTION_TENANT_ID env vars for WIF flow
1 parent dc4add5 commit c2d533c

32 files changed

+131
-65
lines changed

Tasks/AzureCLIV2/azureclitask.ts

+13-6
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ export class azureclitask {
3333
var connectedService: string = tl.getInput("connectedServiceNameARM", true);
3434
await this.loginAzureRM(connectedService);
3535

36-
process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = connectedService;
37-
3836
let errLinesCount: number = 0;
3937
let aggregatedErrorLines: string[] = [];
4038
tool.on('errline', (errorLine: string) => {
@@ -125,7 +123,12 @@ export class azureclitask {
125123
this.logoutAzure();
126124
}
127125

128-
process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = '';
126+
if (process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID && process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID !== "")
127+
{
128+
process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = '';
129+
process.env.AZURESUBSCRIPTION_CLIENT_ID = '';
130+
process.env.AZURESUBSCRIPTION_TENANT_ID = '';
131+
}
129132
}
130133
}
131134

@@ -151,9 +154,13 @@ export class azureclitask {
151154
//login using OpenID Connect federation
152155
Utility.throwIfError(tl.execSync("az", args), tl.loc("LoginFailed"));
153156

154-
this.servicePrincipalId = servicePrincipalId;
155-
this.federatedToken = federatedToken;
156-
this.tenantId = tenantId;
157+
this.servicePrincipalId = servicePrincipalId;
158+
this.federatedToken = federatedToken;
159+
this.tenantId = tenantId;
160+
161+
process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = connectedService;
162+
process.env.AZURESUBSCRIPTION_CLIENT_ID = servicePrincipalId;
163+
process.env.AZURESUBSCRIPTION_TENANT_ID = tenantId;
157164
}
158165
else if (authScheme.toLowerCase() == "serviceprincipal") {
159166
let authType: string = tl.getEndpointAuthorizationParameter(connectedService, 'authenticationType', true);

Tasks/AzureCLIV2/task.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"version": {
2121
"Major": 2,
2222
"Minor": 239,
23-
"Patch": 0
23+
"Patch": 2
2424
},
2525
"minimumAgentVersion": "2.0.0",
2626
"instanceNameFormat": "Azure CLI $(scriptPath)",

Tasks/AzureCLIV2/task.loc.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"version": {
2121
"Major": 2,
2222
"Minor": 239,
23-
"Patch": 0
23+
"Patch": 2
2424
},
2525
"minimumAgentVersion": "2.0.0",
2626
"instanceNameFormat": "ms-resource:loc.instanceNameFormat",

Tasks/AzurePowerShellV5/AzurePowerShell.ps1

+6-1
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,12 @@ finally {
195195
. "$PSScriptRoot\Utility.ps1"
196196
Import-Module "$PSScriptRoot\ps_modules\VstsAzureHelpers_"
197197
Remove-EndpointSecrets
198-
$env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = ''
199198
Update-PSModulePathForHostedAgent
200199
Disconnect-AzureAndClearContext -restrictContext 'True' -ErrorAction SilentlyContinue
200+
201+
if ($env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID) {
202+
$env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = ""
203+
$env:AZURESUBSCRIPTION_CLIENT_ID = ""
204+
$env:AZURESUBSCRIPTION_TENANT_ID = ""
205+
}
201206
}

Tasks/AzurePowerShellV5/CoreAz.ps1

+5-1
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,8 @@ $encryptedToken = ConvertTo-SecureString $vstsAccessToken -AsPlainText -Force
3131
Initialize-AzModule -Endpoint $endpointObject -connectedServiceNameARM $connectedServiceNameARM `
3232
-azVersion $targetAzurePs -isPSCore $isPSCore -encryptedToken $encryptedToken
3333

34-
$env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = $connectedServiceNameARM
34+
if ($vstsAccessToken) {
35+
$env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = $connectedServiceNameARM
36+
$env:AZURESUBSCRIPTION_CLIENT_ID = $endpointObject.servicePrincipalClientID
37+
$env:AZURESUBSCRIPTION_TENANT_ID = $endpointObject.tenantId
38+
}

Tasks/AzurePowerShellV5/InitializeAz.ps1

+2
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,8 @@ elseif ($endpointObject.scheme -eq 'WorkloadIdentityFederation') {
119119
}
120120

121121
$env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = $serviceConnectionId
122+
$env:AZURESUBSCRIPTION_CLIENT_ID = $endpointObject.servicePrincipalClientID
123+
$env:AZURESUBSCRIPTION_TENANT_ID = $endpointObject.tenantId
122124
}
123125
else {
124126
# Provide an additional, custom, credentials-related error message. Will handle localization later

Tasks/AzurePowerShellV5/RemoveAzContext.ps1

+7-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,10 @@
22
. "$PSScriptRoot/ps_modules/VstsAzureHelpers_/Utility.ps1"
33

44
Update-PSModulePathForHostedAgentLinux
5-
Disconnect-AzureAndClearContext -restrictContext 'True'
5+
Disconnect-AzureAndClearContext -restrictContext 'True'
6+
7+
if ($env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID) {
8+
$env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = ""
9+
$env:AZURESUBSCRIPTION_CLIENT_ID = ""
10+
$env:AZURESUBSCRIPTION_TENANT_ID = ""
11+
}

Tasks/AzurePowerShellV5/azurepowershell.ts

-2
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,6 @@ async function run() {
171171
.arg('-Command')
172172
.arg(`. '${path.join(path.resolve(__dirname),'RemoveAzContext.ps1')}'`);
173173

174-
process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = '';
175-
176174
let options = <tr.IExecOptions>{
177175
cwd: input_workingDirectory,
178176
failOnStdErr: false,

Tasks/AzurePowerShellV5/task.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"version": {
1919
"Major": 5,
2020
"Minor": 239,
21-
"Patch": 6
21+
"Patch": 8
2222
},
2323
"releaseNotes": "Added support for Az Module and cross platform agents.",
2424
"groups": [

Tasks/AzurePowerShellV5/task.loc.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"version": {
1919
"Major": 5,
2020
"Minor": 239,
21-
"Patch": 6
21+
"Patch": 8
2222
},
2323
"releaseNotes": "ms-resource:loc.releaseNotes",
2424
"groups": [

_generated/AzureCLIV2.versionmap.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
Default|2.239.0
2-
Node20_229_2|2.239.1
1+
Default|2.239.2
2+
Node20_229_2|2.239.3

_generated/AzureCLIV2/azureclitask.ts

+13-6
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ export class azureclitask {
3333
var connectedService: string = tl.getInput("connectedServiceNameARM", true);
3434
await this.loginAzureRM(connectedService);
3535

36-
process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = connectedService;
37-
3836
let errLinesCount: number = 0;
3937
let aggregatedErrorLines: string[] = [];
4038
tool.on('errline', (errorLine: string) => {
@@ -125,7 +123,12 @@ export class azureclitask {
125123
this.logoutAzure();
126124
}
127125

128-
process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = '';
126+
if (process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID && process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID !== "")
127+
{
128+
process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = '';
129+
process.env.AZURESUBSCRIPTION_CLIENT_ID = '';
130+
process.env.AZURESUBSCRIPTION_TENANT_ID = '';
131+
}
129132
}
130133
}
131134

@@ -151,9 +154,13 @@ export class azureclitask {
151154
//login using OpenID Connect federation
152155
Utility.throwIfError(tl.execSync("az", args), tl.loc("LoginFailed"));
153156

154-
this.servicePrincipalId = servicePrincipalId;
155-
this.federatedToken = federatedToken;
156-
this.tenantId = tenantId;
157+
this.servicePrincipalId = servicePrincipalId;
158+
this.federatedToken = federatedToken;
159+
this.tenantId = tenantId;
160+
161+
process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = connectedService;
162+
process.env.AZURESUBSCRIPTION_CLIENT_ID = servicePrincipalId;
163+
process.env.AZURESUBSCRIPTION_TENANT_ID = tenantId;
157164
}
158165
else if (authScheme.toLowerCase() == "serviceprincipal") {
159166
let authType: string = tl.getEndpointAuthorizationParameter(connectedService, 'authenticationType', true);

_generated/AzureCLIV2/task.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"version": {
2121
"Major": 2,
2222
"Minor": 239,
23-
"Patch": 0
23+
"Patch": 2
2424
},
2525
"minimumAgentVersion": "2.0.0",
2626
"instanceNameFormat": "Azure CLI $(scriptPath)",
@@ -204,7 +204,7 @@
204204
"ExpiredServicePrincipalMessageWithLink": "Secret expired, update service connection at\u00A0%s See\u00A0https://aka.ms/azdo-rm-workload-identity-conversion to learn more about conversion to secret-less service connections."
205205
},
206206
"_buildConfigMapping": {
207-
"Default": "2.239.0",
208-
"Node20_229_2": "2.239.1"
207+
"Default": "2.239.2",
208+
"Node20_229_2": "2.239.3"
209209
}
210210
}

_generated/AzureCLIV2/task.loc.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"version": {
2121
"Major": 2,
2222
"Minor": 239,
23-
"Patch": 0
23+
"Patch": 2
2424
},
2525
"minimumAgentVersion": "2.0.0",
2626
"instanceNameFormat": "ms-resource:loc.instanceNameFormat",
@@ -204,7 +204,7 @@
204204
"ExpiredServicePrincipalMessageWithLink": "ms-resource:loc.messages.ExpiredServicePrincipalMessageWithLink"
205205
},
206206
"_buildConfigMapping": {
207-
"Default": "2.239.0",
208-
"Node20_229_2": "2.239.1"
207+
"Default": "2.239.2",
208+
"Node20_229_2": "2.239.3"
209209
}
210210
}

_generated/AzureCLIV2_Node20/azureclitask.ts

+13-6
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ export class azureclitask {
3333
var connectedService: string = tl.getInput("connectedServiceNameARM", true);
3434
await this.loginAzureRM(connectedService);
3535

36-
process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = connectedService;
37-
3836
let errLinesCount: number = 0;
3937
let aggregatedErrorLines: string[] = [];
4038
tool.on('errline', (errorLine: string) => {
@@ -125,7 +123,12 @@ export class azureclitask {
125123
this.logoutAzure();
126124
}
127125

128-
process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = '';
126+
if (process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID && process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID !== "")
127+
{
128+
process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = '';
129+
process.env.AZURESUBSCRIPTION_CLIENT_ID = '';
130+
process.env.AZURESUBSCRIPTION_TENANT_ID = '';
131+
}
129132
}
130133
}
131134

@@ -151,9 +154,13 @@ export class azureclitask {
151154
//login using OpenID Connect federation
152155
Utility.throwIfError(tl.execSync("az", args), tl.loc("LoginFailed"));
153156

154-
this.servicePrincipalId = servicePrincipalId;
155-
this.federatedToken = federatedToken;
156-
this.tenantId = tenantId;
157+
this.servicePrincipalId = servicePrincipalId;
158+
this.federatedToken = federatedToken;
159+
this.tenantId = tenantId;
160+
161+
process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = connectedService;
162+
process.env.AZURESUBSCRIPTION_CLIENT_ID = servicePrincipalId;
163+
process.env.AZURESUBSCRIPTION_TENANT_ID = tenantId;
157164
}
158165
else if (authScheme.toLowerCase() == "serviceprincipal") {
159166
let authType: string = tl.getEndpointAuthorizationParameter(connectedService, 'authenticationType', true);

_generated/AzureCLIV2_Node20/task.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"version": {
2121
"Major": 2,
2222
"Minor": 239,
23-
"Patch": 1
23+
"Patch": 3
2424
},
2525
"minimumAgentVersion": "2.0.0",
2626
"instanceNameFormat": "Azure CLI $(scriptPath)",
@@ -208,7 +208,7 @@
208208
"ExpiredServicePrincipalMessageWithLink": "Secret expired, update service connection at\u00A0%s See\u00A0https://aka.ms/azdo-rm-workload-identity-conversion to learn more about conversion to secret-less service connections."
209209
},
210210
"_buildConfigMapping": {
211-
"Default": "2.239.0",
212-
"Node20_229_2": "2.239.1"
211+
"Default": "2.239.2",
212+
"Node20_229_2": "2.239.3"
213213
}
214214
}

_generated/AzureCLIV2_Node20/task.loc.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"version": {
2121
"Major": 2,
2222
"Minor": 239,
23-
"Patch": 1
23+
"Patch": 3
2424
},
2525
"minimumAgentVersion": "2.0.0",
2626
"instanceNameFormat": "ms-resource:loc.instanceNameFormat",
@@ -208,7 +208,7 @@
208208
"ExpiredServicePrincipalMessageWithLink": "ms-resource:loc.messages.ExpiredServicePrincipalMessageWithLink"
209209
},
210210
"_buildConfigMapping": {
211-
"Default": "2.239.0",
212-
"Node20_229_2": "2.239.1"
211+
"Default": "2.239.2",
212+
"Node20_229_2": "2.239.3"
213213
}
214214
}
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
Default|5.239.6
2-
Node20_229_2|5.239.7
1+
Default|5.239.8
2+
Node20_229_2|5.239.9

_generated/AzurePowerShellV5/AzurePowerShell.ps1

+6-1
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,12 @@ finally {
195195
. "$PSScriptRoot\Utility.ps1"
196196
Import-Module "$PSScriptRoot\ps_modules\VstsAzureHelpers_"
197197
Remove-EndpointSecrets
198-
$env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = ''
199198
Update-PSModulePathForHostedAgent
200199
Disconnect-AzureAndClearContext -restrictContext 'True' -ErrorAction SilentlyContinue
200+
201+
if ($env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID) {
202+
$env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = ""
203+
$env:AZURESUBSCRIPTION_CLIENT_ID = ""
204+
$env:AZURESUBSCRIPTION_TENANT_ID = ""
205+
}
201206
}

_generated/AzurePowerShellV5/CoreAz.ps1

+5-1
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,8 @@ $encryptedToken = ConvertTo-SecureString $vstsAccessToken -AsPlainText -Force
3131
Initialize-AzModule -Endpoint $endpointObject -connectedServiceNameARM $connectedServiceNameARM `
3232
-azVersion $targetAzurePs -isPSCore $isPSCore -encryptedToken $encryptedToken
3333

34-
$env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = $connectedServiceNameARM
34+
if ($vstsAccessToken) {
35+
$env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = $connectedServiceNameARM
36+
$env:AZURESUBSCRIPTION_CLIENT_ID = $endpointObject.servicePrincipalClientID
37+
$env:AZURESUBSCRIPTION_TENANT_ID = $endpointObject.tenantId
38+
}

_generated/AzurePowerShellV5/InitializeAz.ps1

+2
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,8 @@ elseif ($endpointObject.scheme -eq 'WorkloadIdentityFederation') {
119119
}
120120

121121
$env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = $serviceConnectionId
122+
$env:AZURESUBSCRIPTION_CLIENT_ID = $endpointObject.servicePrincipalClientID
123+
$env:AZURESUBSCRIPTION_TENANT_ID = $endpointObject.tenantId
122124
}
123125
else {
124126
# Provide an additional, custom, credentials-related error message. Will handle localization later

_generated/AzurePowerShellV5/RemoveAzContext.ps1

+7-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,10 @@
22
. "$PSScriptRoot/ps_modules/VstsAzureHelpers_/Utility.ps1"
33

44
Update-PSModulePathForHostedAgentLinux
5-
Disconnect-AzureAndClearContext -restrictContext 'True'
5+
Disconnect-AzureAndClearContext -restrictContext 'True'
6+
7+
if ($env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID) {
8+
$env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = ""
9+
$env:AZURESUBSCRIPTION_CLIENT_ID = ""
10+
$env:AZURESUBSCRIPTION_TENANT_ID = ""
11+
}

_generated/AzurePowerShellV5/azurepowershell.ts

-2
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,6 @@ async function run() {
171171
.arg('-Command')
172172
.arg(`. '${path.join(path.resolve(__dirname),'RemoveAzContext.ps1')}'`);
173173

174-
process.env.AZURESUBSCRIPTION_SERVICE_CONNECTION_ID = '';
175-
176174
let options = <tr.IExecOptions>{
177175
cwd: input_workingDirectory,
178176
failOnStdErr: false,

_generated/AzurePowerShellV5/task.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"version": {
1919
"Major": 5,
2020
"Minor": 239,
21-
"Patch": 6
21+
"Patch": 8
2222
},
2323
"releaseNotes": "Added support for Az Module and cross platform agents.",
2424
"groups": [
@@ -204,7 +204,7 @@
204204
"PS_ExitCode": "PowerShell exited with code '{0}'."
205205
},
206206
"_buildConfigMapping": {
207-
"Default": "5.239.6",
208-
"Node20_229_2": "5.239.7"
207+
"Default": "5.239.8",
208+
"Node20_229_2": "5.239.9"
209209
}
210210
}

0 commit comments

Comments
 (0)