Public/Authentication/Test-R1AdapToken.ps1

# .ExternalHelp psRadiantOne-help.xml
function Test-R1AdapToken {
    [CmdletBinding()]
    [OutputType('System.Boolean')]
    param(
        [parameter(
            Mandatory = $false,
            ValueFromPipelineByPropertyName = $true
        )]
        [ValidateNotNullOrEmpty()]
        [string]$Token,

        [parameter(Mandatory = $false)]
        [switch]$PassThru
    )

    Begin {

        Assert-R1Session

    }#begin

    Process {

        $URI = Resolve-R1ServiceUrl -Service Auth -Path 'adap-token/validate'

        $RequestParameters = @{
            URI    = $URI
            Method = 'POST'
        }

        if ($PSBoundParameters.ContainsKey('Token')) {

            $RequestParameters.Add('Headers', @{ Authorization = "Bearer $Token" })

        }

        try {

            $Result = Invoke-R1RestMethod @RequestParameters

        } catch {

            #The endpoint reports a missing, malformed or invalid token as 401
            Write-Verbose "ADAP token validation failed: $($PSItem.Exception.Message)"
            return $false

        }

        if ($PassThru) {

            $Result

        } else {

            $null -ne $Result.targetDn

        }

    }#process

    End { }#end

}