public/maester/entra/Test-MtCaWIFBlockLegacyAuthentication.ps1

<#
.SYNOPSIS
  Checks if the user is blocked from using legacy authentication
 
.DESCRIPTION
    Checks if the user is blocked from using legacy authentication using the Conditional Access WhatIf Graph API endpoint.
 
.PARAMETER UserId
    The UserId to test the Conditional Acccess policie with
 
.EXAMPLE
    Test-MtCaWIFBlockLegacyAuthentication -UserId "e7417ac7-0485-4014-9100-33163bd6211f"
 
.LINK
    https://mycorp.dev/docs/commands/Test-MtCaWIFBlockLegacyAuthentication
#>

function Test-MtCaWIFBlockLegacyAuthentication {
    [CmdletBinding()]
    [OutputType([bool])]
    param (
        # The UserId to test the Conditional Acccess policie with
        [Parameter(Mandatory)]
        [string]$UserId
    )

    if ( ( Get-MtLicenseInformation EntraID ) -eq "Free" ) {
        Add-MtTestResultDetail -SkippedBecause NotLicensedEntraIDP1
        return $null
    }

    $policiesResult = Test-MtConditionalAccessWhatIf -UserId $UserId -IncludeApplications "00000002-0000-0ff1-ce00-000000000000" -ClientAppType exchangeActiveSync

    if ( $null -ne $policiesResult ) {
        $testResult = "Well done. The following conditional access policies are currently blocking legacy authentication.`n`n%TestResult%"
        $Result = $true
    } else {
        $testResult = "No conditional access policy found that blocks legacy authentication."
        $Result = $false
    }

    Add-MtTestResultDetail -Result $testResult -GraphObjects $policiesResult -GraphObjectType ConditionalAccess
    Write-Verbose "Checking if the user $UserId is blocked from using legacy authentication"
    return $Result
}