Public/Set-AzNetworkToolsToken.ps1
function Set-AzNetworkToolsToken { [CmdletBinding()] param ( [Parameter(Mandatory=$true, ParameterSetName='ServicePrincipal')] [string]$servicePrincipalId , [Parameter(Mandatory=$true, ParameterSetName='ServicePrincipal')] [SecureString]$servicePrincipalSecret , [Parameter(Mandatory=$true, ParameterSetName='Credential')] [PSCredential]$credential , [Parameter(Mandatory=$true, ParameterSetName='ServicePrincipal')] [Parameter(Mandatory=$true, ParameterSetName='Credential')] [string]$tenantId , [Parameter(ParameterSetName='Interactive')] [Parameter(ParameterSetName='ServicePrincipal')] [Parameter(ParameterSetName='Credential')] [switch]$reset , [Parameter(ParameterSetName='Interactive')] [Parameter(ParameterSetName='ServicePrincipal')] [Parameter(ParameterSetName='Credential')] [string]$apiUrl ) if (!$reset) { $azContext = Get-AzContext } if ($apiUrl) { $varaznetworktoolsResourceUrl = $apiUrl } else{ $varaznetworktoolsResourceUrl = $aznetworktoolsResourceUrl } if (!$azContext) { Write-Log "Getting authentication token" try { if ($servicePrincipalId) { $credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $servicePrincipalId, $servicePrincipalSecret Connect-AzAccount -ServicePrincipal -TenantId $tenantId -Credential $credential | Out-Null Set-AzContext -Tenant $tenantId | Out-Null } elseif ($credential -ne $null) { Connect-AzAccount -Credential $credential -Tenant $tenantId | Out-Null } else { Connect-AzAccount -UseDeviceAuthentication | Out-Null } $azContext = Get-AzContext } catch { Write-Error "Failed to authenticate with Azure. Please check your credentials and try again." return } } Write-Log "Connnected: $($azContext.Account)" $script:aznetworktoolsToken = (Get-AzAccessToken -ResourceUrl $varaznetworktoolsResourceUrl -AsSecureString ).Token } |