Public/TenantConnection/Connect-CustomerGraph.ps1
function Connect-CustomerGraph { [CmdletBinding()] param ( [Parameter(Mandatory)] [string]$CustomerTenantId, [Parameter()] [boolean]$AsApp = $false ) # Get SAM tokens if not already available begin { if (!$SAMTokens) { $SAMTokens = Get-SAMTokens } } # Generate a token for MS graph, and connect with it. process { # Try to re-use existing connections $graphContext = Get-MgContext -ErrorAction SilentlyContinue if($graphContext.TenantId -eq $CustomerTenantId -and $Global:GraphToken -and $Global:GraphToken.expirationDateTime -gt (Get-Date)) { Write-Host "Re-using existing Graph connection..." -ForegroundColor DarkGray return } try { #Write-Host "Generating a new token for MS Graph: asApp:$($AsApp)" -ForegroundColor DarkGray $Global:GraphToken = New-CustomPartnerAccessToken -Scopes 'https://graph.microsoft.com/.default' -TenantId $CustomerTenantId -AsApp:$AsApp } catch { throw "Failed to generate a token for MS Graph: $_" } try { Connect-MgGraph -AccessToken ($Global:GraphToken.access_token | ConvertTo-SecureString -AsPlainText -Force) -NoWelcome } catch { throw "Failed to connect to MS Graph: $_" } } } |