MSIdentityTools.psm1
## Set Strict Mode for Module. https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/set-strictmode Set-StrictMode -Version 3.0 ## PowerShell Desktop 5.1 does not dot-source ScriptsToProcess when a specific version is specified on import. This is a bug. # if ($PSEdition -eq 'Desktop') { # $ModuleManifest = Import-PowershellDataFile (Join-Path $PSScriptRoot $MyInvocation.MyCommand.Name.Replace('.psm1','.psd1')) # if ($ModuleManifest.ContainsKey('ScriptsToProcess')) { # foreach ($Path in $ModuleManifest.ScriptsToProcess) { # . (Join-Path $PSScriptRoot $Path) # } # } # } [scriptblock] $MsalAuthentication = { param( [Parameter(Mandatory=$true)] [object] $ClientApplication, [Parameter(Mandatory=$false)] [string[]] $Scopes ) ## Cmdlet Extention if ($ClientApplication -is [Microsoft.Identity.Client.IClientApplicationBase]) { [Microsoft.Identity.Client.IClientApplicationBase] $MsalClientApplication = $ClientApplication } elseif ($ClientApplication -is [Microsoft.Identity.Client.ApplicationOptions]) { [Microsoft.Identity.Client.IClientApplicationBase] $MsalClientApplication = $ClientApplication | Get-MsalClientApplication -CreateIfMissing } elseif ($ClientApplication -is [string]) { [Microsoft.Identity.Client.IClientApplicationBase] $MsalClientApplication = Get-MsalClientApplication -ClientId $ClientApplication -CreateIfMissing } ## Get Token if ($PSBoundParameters.ContainsKey('Scopes')) { [Microsoft.Identity.Client.AuthenticationResult] $MsalToken = $MsalClientApplication | Get-MsalToken -Scopes $PSBoundParameters['Scopes'] } else { [Microsoft.Identity.Client.AuthenticationResult] $MsalToken = $MsalClientApplication | Get-MsalToken } return $MsalToken } |