Если ваш сценарий PowerShell выполняется на компьютере, который присоединен к Active Directory в локальном домене, компьютер подключен к сети предприятия, а пользователь, выполняющий сценарий, является пользователем домена, синхронизированным с Azure Active Directory, тогда выможет использовать переопределение ADAL AcquireTokenAsync , которое использует встроенную проверку подлинности Windows.
В этом примере PowerShell получает токен для текущего пользователя для вызова Graph:
add-type -path "\Microsoft.IdentityModel.Clients.ActiveDirectory.3.13.4\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll"
$clientId = "1950a258-227b-4e31-a9cf-717495945fc2"
$resourceAppIdURI = "https://graph.windows.net"
$UserCredential = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.UserCredential" -ArgumentList "user@contoso.com"
$authority = "https://login.windows.net/TENANT.onmicrosoft.com"
$authContext = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext" -ArgumentList $authority,$false
$authResult = [Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContextIntegratedAuthExtensions]::AcquireTokenAsync($authContext,$resourceAppIdURI,$clientId,$UserCredential).result
В этом примере идентификатор клиента - это известный GUID PowerShell, а ресурс - AADГрафик.Если вам нужно вызвать другой API (например, Time Series Insights), вам нужно зарегистрировать новое приложение (нативное приложение), которое представляет скрипт (вам нужно указать GUID этого нового приложения в скрипте, переменную $ clientId) идать ему делегированные разрешения на вызов API.Также убедитесь, что вы указали имя своего клиента в переменной $ author, а GUID или URI API - в переменной $ resourceAppIdURI.