tests/Test-Assessment.25370.ps1

<#
.SYNOPSIS
    Checks that Global Secure Access source IP restoration (Conditional Access signaling) is enabled.
.DESCRIPTION
    Ensures that user source IP addresses are preserved for Conditional Access and risk detection by verifying that Global Secure Access signaling is enabled in Microsoft Entra.
#>


function Test-Assessment-25370 {
    [ZtTest(
        Category = 'Network',
        ImplementationCost = 'Low',
        MinimumLicense = ('Free'),
        Pillar = 'Network',
        RiskLevel = 'Medium',
        SfiPillar = 'Protect networks',
        TenantType = ('Workforce','External'),
        TestId = 25370,
        Title = 'User source IP addresses are preserved for Conditional Access and risk detection',
        UserImpact = 'Low'
    )]
    [CmdletBinding()]
    param()

    #region Data Collection
    Write-PSFMessage '🟦 Start' -Tag Test -Level VeryVerbose

    $activity = 'Checking Global Secure Access source IP restoration (Conditional Access signaling)'
    Write-ZtProgress -Activity $activity -Status 'Querying Global Secure Access signaling status'

    # Query Q1: Get Global Secure Access Conditional Access signaling settings
    $settings = Invoke-ZtGraphRequest -RelativeUri 'networkAccess/settings/conditionalAccess' -ApiVersion beta

    # Initialize test variables
    $testResultMarkdown = ''
    $passed = $false
    #endregion Data Collection

    #region Assessment Logic
    if ($null -eq $settings) {
        $testResultMarkdown = 'Unable to retrieve Global Secure Access Conditional Access signaling settings.'
        $passed = $false
    }
    elseif ($settings.signalingStatus -eq 'enabled') {
        $testResultMarkdown = '✅ Global Secure Access signaling is enabled.'
        $passed = $true
    }
    else {
        $testResultMarkdown = '❌ Global Secure Access signaling is disabled.'
        $passed = $false
    }
    #endregion Assessment Logic


    $params = @{
        TestId = '25370'
        Status = $passed
        Result = $testResultMarkdown
    }

    # Add test result details
    Add-ZtTestResultDetail @params
}