@@ -1457,9 +1457,10 @@ function Test-AzureFirewallPolicyPremiumFeatures {
1457
1457
$bypass = New-AzFirewallPolicyIntrusionDetectionBypassTraffic - Name $bypassTestName - Protocol " TCP" - DestinationPort " 80" - SourceAddress " 10.0.0.0" - DestinationAddress " 10.0.0.0"
1458
1458
$sigOverride = New-AzFirewallPolicyIntrusionDetectionSignatureOverride - Id " 123456798" - Mode " Deny"
1459
1459
$intrusionDetection = New-AzFirewallPolicyIntrusionDetection - Mode " Alert" - SignatureOverride $sigOverride - BypassTraffic $bypass - PrivateRange @ (" 10.0.0.0/8" , " 172.16.0.0/12" )
1460
+ $userassignedIdentity = @ ($identity.id )
1460
1461
1461
1462
# 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
1463
1464
# Get AzureFirewallPolicy
1464
1465
$getAzureFirewallPolicy = Get-AzFirewallPolicy - Name $azureFirewallPolicyName - ResourceGroupName $rgname
1465
1466
@@ -1597,19 +1598,26 @@ function Test-AzureFirewallPolicyExplicitProxyCRUD {
1597
1598
$rgname = Get-ResourceGroupName
1598
1599
$azureFirewallPolicyName = Get-ResourceName
1599
1600
$resourceTypeParent = " Microsoft.Network/FirewallPolicies"
1600
- $location = " westus2 "
1601
+ $location = " francecentral "
1601
1602
$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"
1603
1606
1604
1607
try {
1605
1608
1606
1609
# Create the resource group
1607
1610
$resourceGroup = New-AzResourceGroup - Name $rgname - Location $location - Tags @ { testtag = " testval" }
1608
1611
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
1610
1618
1611
1619
# 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
1613
1621
1614
1622
# Get AzureFirewallPolicy
1615
1623
$getAzureFirewallPolicy = Get-AzFirewallPolicy - Name $azureFirewallPolicyName - ResourceGroupName $rgname
@@ -1622,22 +1630,90 @@ function Test-AzureFirewallPolicyExplicitProxyCRUD {
1622
1630
Assert-AreEqual (Normalize- Location $location ) $getAzureFirewallPolicy.Location
1623
1631
Assert-NotNull $getAzureFirewallPolicy.ExplicitProxy
1624
1632
Assert-AreEqual 85 $getAzureFirewallPolicy.ExplicitProxy.HttpPort
1625
- Assert-AreEqual 121 $getAzureFirewallPolicy.ExplicitProxy.HttpsPort
1626
1633
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
1628
1636
1629
1637
# Modify
1630
- $exProxy = New-AzFirewallPolicyExplicitProxy - EnableExplicitProxy - HttpPort 86 - HttpsPort 123 - EnablePacFile - PacFilePort 124 - PacFile $pacFile
1638
+ $exProxy = New-AzFirewallPolicyExplicitProxy - EnableExplicitProxy - HttpPort 86
1631
1639
# 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
1634
1643
$getAzureFirewallPolicy = Get-AzFirewallPolicy - Name $azureFirewallPolicyName - ResourceGroupName $rgname
1635
1644
1636
1645
Assert-NotNull $getAzureFirewallPolicy.ExplicitProxy
1637
1646
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
1641
1717
}
1642
1718
finally {
1643
1719
# Cleanup
0 commit comments