Azure HTTP Trigger. How to avoid everytime the login

34 Views Asked by At

I have an Azure HTTP trigger function. And it all works, except that I am executing everytime the slow Connect-ExchangeOnline -Credential $Credential

How can I re-use the security token so it is only once slow.

And instead of using a normal login account, can I also use an applicationID and secret?

using namespace System.Net

param($Request, $TriggerMetadata)

$body = @{}

$user = "[email protected]" 
$password = "example_password"
$securePassword = $password | ConvertTo-SecureString -AsPlainText -Force

$Credential = new-Object System.Management.Automation.PSCredential($user,$securePassword)

try {
    Connect-ExchangeOnline -Credential $Credential
    $filter = $Request.Body

    $wildCard = $filter.wildCard

    $SharedMailboxes = Get-Mailbox -RecipientTypeDetails SharedMailbox -ResultSize:1000  $wildcard| 
    Select-Object Identity,User,AccessRights,SamaccountName, PrimarySmtpAddress,City ,UsageLocation,IsDirSynced, DisplayName,HiddenFromAddressListsEnabled, GrantSendOnBehalfTo, ExmployeeID

    $body.values = $SharedMailboxes
}
catch {
    Write-Error $_.Exception.Message
    $body.error = $_.Exception.Message
}
finally {
    Disconnect-ExchangeOnline -Confirm:$false
}

Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
    StatusCode = [HttpStatusCode]::OK
    Body = $body
})
0

There are 0 best solutions below