API Graph для событий риска идентификации Azure не извлекает все события - PullRequest
0 голосов
/ 12 апреля 2019

Я хочу получать электронные письма всякий раз, когда в Azure AD происходит событие риска.Мы очень большой арендатор, и они встречаются часто.Я нашел эту статью от Microsoft и выполнил следующие действия: https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/graph-get-started Однако я вижу, что она возвращает менее половины результатов, которые я вижу в веб-интерфейсе.

Я скопировал и вставилпример кода, заполняя информацию об арендаторе, но я получаю только некоторые результаты.(Это мое первое использование Graph API.) Мы не закрываем события, поэтому я получаю активные события от Graph, и есть много активных событий, не проходящих через Graph.

Я использую этот URL: "https://graph.microsoft.com/beta/identityRiskEvents" Вот как я сохраняю все результаты в переменную:

$myReport = (Invoke-WebRequest -UseBasicParsing -Headers $headerParams -Uri $url)
$events = ($myReport.Content | ConvertFrom-Json).value

Например, у меня на сайте четыре (активно) пропущенные учетные события с 4/4/2019 по сегодняшний день, но в результатах Графика у меня есть только один. На веб-сайте у меня есть двенадцать (активных) событий невозможного путешествия, но в Графике у меня только четыре одновременно.интересно. Интересно, мне нужно закрыть события на сайте, чтобы получить правильные результаты?

1 Ответ

1 голос
/ 21 мая 2019

Когда событий риска больше, чем размер страницы, вам нужно использовать разбиение на страницы для запроса страницы данных с помощью OData $ top и $ skip.Например, следующие запросы возвращают page1, page2 и page3:

  • GET ~ / beta / identityRiskEvents? $ Top = 100
  • GET ~ / beta / identityRiskEvents? $ Top =100 & $ skip = 100
  • GET ~ / beta / identityRiskEvents? $ Top = 100 & $ skip = 200

Чтобы избежать глубокого разбиения на страницы, существует ограничение на количество пропускаемых страниц.Таким образом, для запроса большого числа событий риска вы можете добавить фильтры, чтобы разделить данные на несколько частей для запроса, например:

GET ~ beta / identityRiskEvents? $ Filter = riskLevel eq microsoft.graph.riskLevel'medium'и riskEventDateTime gt 2016-04-05T00: 00: 56.2255665Z & $ count = true

Если вас интересует определенный тип события риска, скажем, события риска leakedCredentials, они могут выполнить следующие запросы:

GET ~ / beta / leakedCredentialsRiskEvents

Или

GET ~ / beta / identityRiskEvents? $ Filter = riskType eq 'LeakedCredentialsRiskEvent'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...