public/Get-ProofpointOdinToken.ps1

<#
.SYNOPSIS

Gets the Proofpoint Odin Token for User.

.DESCRIPTION

Gets the Proofpoint Odin token for specified User for impersionation.

.PARAMETER Domain
Specified Domain for endpoint.

.PARAMETER UserEmail
Specified Domain for endpoint.


.EXAMPLE

PS> Get-ProofpointOdinToken -Domain microsoft.com -UserEmail Bill.Gates@microsoft.com

#>








Function Get-ProofpointOdinToken{
    [CmdletBinding(SupportsShouldProcess = $true)]
  Param(
        [Parameter(Mandatory=$true)]
        [string]$Domain,
        [Parameter(Mandatory=$true)]
        [string]$UserEmail
        )
  
  $Body = @{
    user_to_impersonate= "$($UserEmail)"

  }  
  
  $jsonBody = $Body | ConvertTo-Json
  
  
  if(!($PPheaders)){
  
    Write-Error "Not Connected to Proofpoint." 
   
  }
  
  
  
  
  try{
  Invoke-RestMethod -Uri "$PPURI/token/$Domain" -Headers $PPheaders -Method post -Body $jsonBody -ContentType 'application/json'
  }Catch{
    Write-Output "$_"
  }
  
  }