Я пишу сценарий Powershell, который использует Microsoft Graph с помощью регистрации приложения. Сценарий получает список администраторов нашего клиента и проверяет, вошли ли они в систему в течение 30 дней. Если нет, отправляется уведомление по электронной почте, и вход в их учетную запись переключается на заблокированный.
Часть кода уведомлений по электронной почте работает, как и предполагалось, но это переключатель входа. У меня возникают проблемы при работе с Powershell, поскольку при запуске кода появляется ошибка «Запрещено 403».
Я попытался запустить переключатель входа в систему, используя Graph Explorer, и он работал как положено.
#CREATE ACCESS TOKEN
$token = Invoke-RestMethod -Uri https://login.microsoftonline.com/$tenant/oauth2/token?api-version=1.0 -Method Post -Body @{"grant_type" = "client_credentials"; "resource" = "https://graph.microsoft.com/"; "client_id" = $clientID; "client_secret" = $clientSecret}
$Headers = @{
'authorization'="Bearer $($Token.access_token)"
}
#Url
$apiAccount = "https://graph.microsoft.com/v1.0/users/$userPrincipalName"
#TOGGLE SIGN-IN
$blockaccount = "{
""accountEnabled"": ""false""
}"
Invoke-RestMethod -Headers $headers -Uri $apiAccount -Body $blockaccount -ContentType "application/json" -Method Patch
# My App Registration permissions (Application)
AuditLog.Read.All
Directory.ReadWrite.All
Mail.Send
User.ReadWrite.All
При запуске кода появляется ошибка «Запрещено 403». Я даже пытался добавить регистрацию приложения в роль администратора службы поддержки в Azure, но это также не принесло успеха.