Skip to content

Commit a0ff993

Browse files
author
Balashivaram Ganesan
committed
Added Support to Input Multiple User Assigned Identities
1 parent f226221 commit a0ff993

File tree

12 files changed

+2025
-415
lines changed

12 files changed

+2025
-415
lines changed

generated/Monitor/PipelineGroup.Autorest/Az.PipelineGroup.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,7 @@
77

88
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory).., build.proj))\src\Az.autorest.props" />
99
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory).., build.proj))\src\Az.Post.props" />
10+
<ItemGroup>
11+
<ProjectReference Include="..\..\..\src\Network\Network\Network.csproj" />
12+
</ItemGroup>
1013
</Project>

src/Accounts/Accounts/Az.Accounts.psd1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ RequiredAssemblies = 'Microsoft.Azure.PowerShell.AssemblyLoading.dll',
7979
'Microsoft.WindowsAzure.Storage.dll',
8080
'Microsoft.Azure.PowerShell.Clients.Aks.dll',
8181
'Microsoft.Azure.PowerShell.Strategies.dll',
82-
'Microsoft.Azure.PowerShell.Common.Share.dll', 'FuzzySharp.dll'
82+
'Microsoft.Azure.PowerShell.Common.Share.dll', 'Newtonsoft.Json.dll'
8383

8484
# Script files (.ps1) that are run in the caller's environment prior to importing this module.
8585
# ScriptsToProcess = @()

src/Network/Network.Test/ScenarioTests/AzureFirewallPolicyTests.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,14 @@ public void TestAzureFirewallPolicyExplicitProxyCRUD()
165165
TestRunner.RunTestScript("Test-AzureFirewallPolicyExplicitProxyCRUD");
166166
}
167167

168+
[Fact]
169+
[Trait(Category.AcceptanceType, Category.CheckIn)]
170+
[Trait(Category.Owner, NrpTeamAlias.azurefirewall)]
171+
public void TestAzureFirewallPolicyMultipleIdentities ()
172+
{
173+
TestRunner.RunTestScript("Test-AzureFirewallPolicyMultipleIdentities");
174+
}
175+
168176
[Fact]
169177
[Trait(Category.AcceptanceType, Category.CheckIn)]
170178
[Trait(Category.Owner, NrpTeamAlias.azurefirewall)]

src/Network/Network.Test/ScenarioTests/AzureFirewallPolicyTests.ps1

Lines changed: 89 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1457,9 +1457,10 @@ function Test-AzureFirewallPolicyPremiumFeatures {
14571457
$bypass = New-AzFirewallPolicyIntrusionDetectionBypassTraffic -Name $bypassTestName -Protocol "TCP" -DestinationPort "80" -SourceAddress "10.0.0.0" -DestinationAddress "10.0.0.0"
14581458
$sigOverride = New-AzFirewallPolicyIntrusionDetectionSignatureOverride -Id "123456798" -Mode "Deny"
14591459
$intrusionDetection = New-AzFirewallPolicyIntrusionDetection -Mode "Alert" -SignatureOverride $sigOverride -BypassTraffic $bypass -PrivateRange @("10.0.0.0/8", "172.16.0.0/12")
1460+
$userassignedIdentity = @($identity.id)
14601461

14611462
# Create AzureFirewallPolicy (with Intrusion Detection, TransportSecurity and Identity parameters)
1462-
$azureFirewallPolicy = New-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname -Location $location -SkuTier $tier -IntrusionDetection $intrusionDetection -UserAssignedIdentityId $identity.Id
1463+
$azureFirewallPolicy = New-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname -Location $location -SkuTier $tier -IntrusionDetection $intrusionDetection -UserAssignedIdentityId $userassignedIdentity
14631464
# Get AzureFirewallPolicy
14641465
$getAzureFirewallPolicy = Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
14651466

@@ -1597,19 +1598,26 @@ function Test-AzureFirewallPolicyExplicitProxyCRUD {
15971598
$rgname = Get-ResourceGroupName
15981599
$azureFirewallPolicyName = Get-ResourceName
15991600
$resourceTypeParent = "Microsoft.Network/FirewallPolicies"
1600-
$location = "westus2"
1601+
$location = "francecentral"
16011602
$vnetName = Get-ResourceName
1602-
$pacFile ="https://packetcapturesdev.blob.core.windows.net/explicit-proxy/pacfile.pac?sp=r&st=2022-06-02T21:14:54Z&se=2022-07-15T05:14:54Z&spr=https&sv=2021-06-08&sr=b&sig=VqX7Jfqb0P2HhuoDFDCeGLHvtM65Tu8lpkV96kCWZn0%3D"
1603+
$identityName = "PacFileMSI-testExplicitProxyV2"
1604+
$identityRG = "ExplicitProxy_clipstestresource"
1605+
$pacFileURL = "https://eproxypstestresources.blob.core.windows.net/explicitproxycontainer/proxy.pac"
16031606

16041607
try {
16051608

16061609
# Create the resource group
16071610
$resourceGroup = New-AzResourceGroup -Name $rgname -Location $location -Tags @{ testtag = "testval" }
16081611

1609-
$explicitProxySettings = New-AzFirewallPolicyExplicitProxy -EnableExplicitProxy -HttpPort 85 -HttpsPort 121 -EnablePacFile -PacFilePort 122 -PacFile $pacFile
1612+
#GetIdentityPrincipalId
1613+
$identity = Get-AzUserAssignedIdentity -ResourceGroupName $identityRG -Name $identityName
1614+
1615+
$userAssignedIdentity = @($identity.Id)
1616+
1617+
$explicitProxySettings = New-AzFirewallPolicyExplicitProxy -EnableExplicitProxy -HttpPort 85 -EnablePacFile -PacFilePort 122 -PacFile $pacFileURL
16101618

16111619
# Create AzureFirewallPolicy (with Explicit Proxy Settings)
1612-
$azureFirewallPolicy = New-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname -Location $location -ExplicitProxy $explicitProxySettings
1620+
$azureFirewallPolicy = New-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname -Location $location -ExplicitProxy $explicitProxySettings -UserAssignedIdentityId $userAssignedIdentity
16131621

16141622
# Get AzureFirewallPolicy
16151623
$getAzureFirewallPolicy = Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
@@ -1622,22 +1630,90 @@ function Test-AzureFirewallPolicyExplicitProxyCRUD {
16221630
Assert-AreEqual (Normalize-Location $location) $getAzureFirewallPolicy.Location
16231631
Assert-NotNull $getAzureFirewallPolicy.ExplicitProxy
16241632
Assert-AreEqual 85 $getAzureFirewallPolicy.ExplicitProxy.HttpPort
1625-
Assert-AreEqual 121 $getAzureFirewallPolicy.ExplicitProxy.HttpsPort
16261633
Assert-AreEqual 122 $getAzureFirewallPolicy.ExplicitProxy.PacFilePort
1627-
Assert-AreEqual $pacFile $getAzureFirewallPolicy.ExplicitProxy.PacFile
1634+
Assert-AreEqual $pacFileURL $getAzureFirewallPolicy.ExplicitProxy.PacFile
1635+
Assert-AreEqual $identity.principalid $getAzureFirewallPolicy.Identity.UserAssignedIdentities.Values[0].principalId
16281636

16291637
# Modify
1630-
$exProxy = New-AzFirewallPolicyExplicitProxy -EnableExplicitProxy -HttpPort 86 -HttpsPort 123 -EnablePacFile -PacFilePort 124 -PacFile $pacFile
1638+
$exProxy = New-AzFirewallPolicyExplicitProxy -EnableExplicitProxy -HttpPort 86
16311639
# Set AzureFirewallPolicy
1632-
$azureFirewallPolicy.ExplicitProxy = $exProxy
1633-
Set-AzFirewallPolicy -InputObject $azureFirewallPolicy
1640+
$getAzureFirewallPolicy.ExplicitProxy = $exProxy
1641+
$getAzureFirewallPolicy.Identity.Type = "None"
1642+
Set-AzFirewallPolicy -InputObject $getAzureFirewallPolicy
16341643
$getAzureFirewallPolicy = Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
16351644

16361645
Assert-NotNull $getAzureFirewallPolicy.ExplicitProxy
16371646
Assert-AreEqual 86 $getAzureFirewallPolicy.ExplicitProxy.HttpPort
1638-
Assert-AreEqual 123 $getAzureFirewallPolicy.ExplicitProxy.HttpsPort
1639-
Assert-AreEqual 124 $getAzureFirewallPolicy.ExplicitProxy.PacFilePort
1640-
Assert-AreEqual $pacFile $getAzureFirewallPolicy.ExplicitProxy.PacFile
1647+
Assert-Null $getAzureFirewallPolicy.ExplicitProxy.EnablePacFile
1648+
1649+
}
1650+
finally {
1651+
# Cleanup
1652+
Clean-ResourceGroup $rgname
1653+
}
1654+
}
1655+
1656+
<#
1657+
.SYNOPSIS
1658+
Tests AzureFirewall Policy With Multiple Identities
1659+
#>
1660+
function Test-AzureFirewallPolicyMultipleIdentities {
1661+
$rgname = Get-ResourceGroupName
1662+
$azureFirewallPolicyName = Get-ResourceName
1663+
$location = "francecentral"
1664+
$tlsIdentityName = "TLSIdentity_clipstestresource"
1665+
$eproxyIdentityName = "PacFileMSI-testExplicitProxyV2"
1666+
$keyvaultSecretID = "https://explicitproxyclipskv.vault.azure.net/secrets/cacert/e99a9c61211d499aa2950da88d8e6966"
1667+
$pacFileURL = "https://eproxypstestresources.blob.core.windows.net/explicitproxycontainer/proxy.pac"
1668+
$secretName = "cacert"
1669+
$resourceRG = "ExplicitProxy_clipstestresource"
1670+
1671+
1672+
try {
1673+
# Create the resource group
1674+
$resourceGroup = New-AzResourceGroup -Name $rgname -Location $location -Tags @{ testtag = "testval" }
1675+
1676+
#GetIdentity
1677+
$tlsIdentity = Get-AzUserAssignedIdentity -ResourceGroupName $resourceRG -Name $tlsIdentityName
1678+
1679+
$eproxyIdentity = Get-AzUserAssignedIdentity -ResourceGroupName $resourceRG -Name $eproxyIdentityName
1680+
1681+
#Enable Explicit Proxy - Single MSI
1682+
$userAssignedIdentity = @($eproxyIdentity.Id, $tlsIdentity.Id)
1683+
$explicitProxySettings = New-AzFirewallPolicyExplicitProxy -EnableExplicitProxy -HttpPort 85 -EnablePacFile -PacFilePort 122 -PacFile $pacFileURL
1684+
1685+
# Create AzureFirewallPolicy (with Explicit Proxy Settings)
1686+
$azureFirewallPolicy = New-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname -Location $location -SkuTier Premium -TransportSecurityName $secretName -TransportSecurityKeyVaultSecretId $keyvaultSecretID -ExplicitProxy $explicitProxySettings -UserAssignedIdentityId $userAssignedIdentity
1687+
1688+
#Get Azure FirewallPolicy
1689+
$getAzureFirewallPolicy = Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
1690+
1691+
#verification
1692+
Assert-AreEqual $rgName $getAzureFirewallPolicy.ResourceGroupName
1693+
Assert-AreEqual $azureFirewallPolicyName $getAzureFirewallPolicy.Name
1694+
Assert-NotNull $getAzureFirewallPolicy.Location
1695+
Assert-AreEqual (Normalize-Location $location) $getAzureFirewallPolicy.Location
1696+
Assert-NotNull $getAzureFirewallPolicy.ExplicitProxy
1697+
Assert-AreEqual 85 $getAzureFirewallPolicy.ExplicitProxy.HttpPort
1698+
Assert-AreEqual 122 $getAzureFirewallPolicy.ExplicitProxy.PacFilePort
1699+
Assert-AreEqual $pacFileURL $getAzureFirewallPolicy.ExplicitProxy.PacFile
1700+
Assert-AreEqual 2 $getAzureFirewallPolicy.Identity.UserAssignedIdentities.Count
1701+
1702+
#Get Azure FirewallPolicy
1703+
$getAzureFirewallPolicy = Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
1704+
1705+
#Disable TLS, Explicit Proxy and Remove Managed Identity
1706+
$getAzureFirewallPolicy.Identity.Type = "None"
1707+
$getAzureFirewallPolicy.ExplicitProxy = $null
1708+
$getAzureFirewallPolicy.TransportSecurity = $null
1709+
Set-AzFirewallPolicy -InputObject $getAzureFirewallPolicy
1710+
1711+
#Get Azure FirewallPolicy
1712+
$getAzureFirewallPolicy = Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
1713+
1714+
#verification
1715+
Assert-Null $getAzureFirewallPolicy.ExplicitProxy
1716+
Assert-Null $getAzureFirewallPolicy.TransportSecurity
16411717
}
16421718
finally {
16431719
# Cleanup

0 commit comments

Comments
 (0)