src/Connect-cciAzAccount.ps1

function Connect-cciAzAccount {
    [CmdletBinding()]
    param (
        $SubscriptionID,
        $TenantId
    )
    begin {
        Write-Verbose "Started running $($MyInvocation.MyCommand)"
        $cciConnectionParams = Get-cciConnectionParams
        if (!($subscriptionName)) {
            $subscriptionName = $cciConnectionParams.AzAccount_subscriptionName
        }
        if (!($SubscriptionID)) {
            $SubscriptionID = $cciConnectionParams.SubscriptionID
        }
        if (!($TenantId)) {
            $TenantId = $cciConnectionParams.TenantId
        }
        $CciAZContext = @{
            'SubscriptionID' = $SubscriptionID
            'TenantId' = $TenantId
        }
    }
    process {
        while (!(Get-AzContext)) {
            Write-Verbose "Logging in to $($subscriptionName)..."
            Write-Output $CciAZContext
            Update-AZConfig -EnableLoginByWam $False #5/2024 TEMP Workaround for WAM https://learn.microsoft.com/en-us/powershell/module/az.accounts/update-azconfig?view=azps-12.0.0#-enableloginbywam
            Connect-AzAccount @CciAZContext -Verbose
       }
    }

    end {
        Write-Verbose "Finished running $($MyInvocation.MyCommand)"
    }
}