Я пытаюсь получить журнал аудита для отслеживания изменений в распределении пользовательских лицензий.Это URI, который я использую в MS Graph Explorer.Там все работает нормально, я могу получить из него нужные данные.
https://graph.microsoft.com/beta/auditLogs/directoryAudits?$filter=activityDisplayName eq 'Update user'
Но когда я пытаюсь выполнить запрос с тем же URI через PowerShell с токеном аутентификации, сгенерированным с теми же учетными данными Office 365,Я получил сообщение о том, что Invoke-RestMethod : The remote server returned an error: (401) Unauthorized.
Я что-то пропустил с точки зрения получения токена аутентификации?Вот функция GetAuthToken, которую я использую
Function GetAuthToken
{
param
(
[Parameter(Mandatory=$true)]
$TenantName
)
Import-Module Azure
$clientId = "ef9bcdf0-a675-4cd5-9ec3-fa549f9ee4cf"
$redirectUri = "https://RedirectURI.com"
$resourceAppIdURI = "https://graph.microsoft.com"
$authority = "https://login.microsoftonline.com/$TenantName"
$authContext = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext" -ArgumentList $authority
$Credential = Import-Clixml -Path "C:\MIMA\tom_admin_cred.xml"
$AADCredential = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.UserCredential" -ArgumentList $credential.UserName,$credential.Password
$authResult = $authContext.AcquireToken($resourceAppIdURI, $clientId,$AADCredential)
return $authResult
}
И это код, который я использую для получения отчета
$token = GetAuthToken -TenantName $tenant
$authHeader = @{
'Content-Type'='application\json'
'Authorization'=$token.CreateAuthorizationHeader()
}
$uri = "https://graph.microsoft.com/beta/auditLogs/directoryAudits?$filter=activityDisplayName eq 'Update user'"
$auditReports = Invoke-RestMethod -Uri $uri –Headers $authHeader –Method Get