functions/Private/Authorization/Get-MgaMSALAccessToken.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
function Get-MgaMSALAccessToken { param ( $ApplicationID, $Tenant, $Secret, $Certificate ) try { [System.Collections.Generic.List[String]]$LoginScope = @('https://graph.microsoft.com/.default') $Builder = [Microsoft.Identity.Client.ConfidentialClientApplicationBuilder]::Create($ApplicationID).WithTenantId($Tenant) if ($Secret) { $Builder = $Builder.WithClientSecret($Secret).Build() } elseif ($Certificate) { $Builder = $Builder.WithCertificate($Certificate).Build() } $Script:MgaSession.AccessToken = $Builder.AcquireTokenForClient($LoginScope).ExecuteAsync() if ($null -eq $Script:MgaSession.AccessToken.result.AccessToken) { throw 'We did not retrieve an Oauth access token to continue script. Exiting script...' } else { $Script:MgaSession.headerParameters = @{ Authorization = $Script:MgaSession.AccessToken.result.CreateAuthorizationHeader() 'Content-Type' = 'application/json' } } } catch { throw $_ } } |