M365Con 2027 – бесплатная онлайн-конференция · 11–22 Jan 2027 · 120 sessions→ m365con.net

2025-12-08

Используйте Managed Identity с PowerShell для Microsoft Graph

Используйте Managed Identity с PowerShell для Microsoft Graph
Всё ещё пишете PowerShell-скрипты на модулях MSOnline и AzureAD в 2025 году? Этот выпуск объясняет, почему этот стек устарел, и как перейти к подходу API-first с чистым REST и Microsoft Graph. Мы разбираем базовый шаблон «токен, заголовки, REST-вызов», три реальных сценария аутентификации (device code, client credentials с сертификатами и managed identity), а также одну особенность с аудиторией токена, из-за которой ломается большинство скриптов для Graph. Вы увидите, как строить кроссплатформенную автоматизацию Graph, которая без проблем работает на Linux, в контейнерах, GitHub Actions, Azure Functions и Azure Automation, без хрупких зависимостей от модулей. Затем мы применяем этот шаблон к корпоративным сценариям: очистка устройств в Intune, онбординг идентификаций и обнаружение и устранение отклонений от требований соответствия, с наименьшими привилегиями разрешений Graph, надёжной логикой повторных попыток, вспомогательными функциями пагинации и полным аудиторским следом в Log Analytics. Если вы работаете с Azure, Intune или M

Поскольку все больше компаний полагаются на Microsoft 365, автоматизация задач управления становится необходимой. Вы можете повысить эффективность и сэкономить драгоценное время, интегрировав PowerShell + Graph API. Эта мощная связка открывает надежные возможности управления, которые упрощают операции.

Однако многие пользователи сталкиваются с трудностями. Например, некоторые ключевые функции не имеют документированных конечных точек, что усложняет автоматизацию. Кроме того, устаревшие API могут приводить к скрытым сбоям, затрудняя поддержку ваших скриптов. Не волнуйтесь! В этом посте мы разберем эти сложные концепции на простые и понятные шаги, проведя вас через процесс с четкими решениями.

Ключевые выводы

  • Интегрируйте PowerShell с Graph API для автоматизации задач Microsoft 365 и повышения эффективности.
  • Убедитесь, что ваша система соответствует требованиям, таким как PowerShell 7 или выше и последний модуль Microsoft Graph, для бесперебойной работы.
  • Поймите разрешения и области доступа, чтобы контролировать, к чему ваши скрипты могут обращаться в Microsoft 365, следуя принципу наименьших привилегий.
  • Зарегистрируйте приложение в Azure AD, чтобы создать безопасную идентичность для ваших скриптов, позволяющую безопасно обращаться к Microsoft Graph.
  • Выберите подходящий поток аутентификации, например Device Code Flow или Managed Identity Flow, чтобы эффективно защитить ваши токены доступа.
  • Формируйте корректные HTTP-запросы с помощью PowerShell для взаимодействия с Microsoft Graph API и получения данных.
  • Внимательно обрабатывайте ошибки и ограничения API, чтобы ваши скрипты работали стабильно и не допускали сбоев.
  • Оптимизируйте скрипты, используя выборку только нужных свойств и пакетирование запросов, чтобы повысить производительность и снизить потребление ресурсов.

Предварительные требования для PowerShell + Graph API

Прежде чем начинать автоматизацию задач Microsoft 365 с помощью PowerShell + Graph API, необходимо должным образом подготовить систему и окружение. Эта подготовка обеспечивает бесперебойную работу и безопасный доступ к ресурсам Microsoft Graph.

Установка модулей PowerShell

Для взаимодействия с Microsoft Graph API нужно установить подходящие модули PowerShell. SDK Microsoft Graph PowerShell предоставляет все необходимые командлеты для этой интеграции. Чтобы избежать ошибок, убедитесь, что ваша система соответствует следующим минимальным требованиям:

Требование Описание
Версия PowerShell Требуется PowerShell версии 7 или выше.
.NET Framework На macOS необходим .NET Framework 4.7.2 или более поздней версии.
PowerShellGet Обновите PowerShellGet до последней версии.
Политика выполнения Установите политику выполнения на RemoteSigned или менее строгую.

Обновить PowerShellGet можно командой Install-Module PowerShellGet -Force, а политику выполнения задать командой Set-ExecutionPolicy RemoteSigned. После этого установите модуль Microsoft Graph:

Install-Module Microsoft.Graph -Scope CurrentUser

Эта команда загружает последнюю стабильную версию модуля, позволяя легко вызывать конечные точки Microsoft Graph.

Настройка среды Microsoft 365

Правильная настройка среды Microsoft 365 имеет решающее значение для автоматизации. Выполните следующие шаги, чтобы начать:

  1. Убедитесь, что система соответствует требованиям: PowerShell 7.2 или новее, .NET Framework 4.7.2 или новее и последний модуль PowerShellGet.
  2. Установите модуль Microsoft Graph PowerShell, как показано выше.
  3. Подключитесь к вашему арендатору Microsoft 365, импортировав модуль и пройдя аутентификацию с необходимыми областями доступа. Например:
Connect-MgGraph -Scopes "User.ReadWrite.All","Directory.ReadWrite.All"

Эта команда запрашивает вход и предоставляет вашему сеансу разрешения на чтение и запись данных пользователей и каталога. Области доступа можно изменять в зависимости от потребностей автоматизации.

Понимание разрешений и областей доступа

Разрешения и области доступа определяют, что ваши скрипты могут читать или изменять в Microsoft 365. Microsoft Graph API использует два основных типа разрешений:

  • Делегированные разрешения: применяются, когда вы запускаете скрипты от имени вошедшего пользователя. Они ограничивают доступ данными, которыми пользователь владеет или к которым имеет доступ.
  • Разрешения приложения: позволяют вашему приложению или скрипту получать доступ к данным всей организации без вошедшего пользователя.

Распространенные разрешения включают *.Read.All для доступа только на чтение и *.ReadWrite.All для полного доступа на чтение и запись. Например, SecurityActions.Read.All позволяет просматривать действия безопасности, а SecurityActions.ReadWrite.All — изменять их.

Разрешения приложения требуют согласия администратора. Администратор арендатора должен одобрить эти разрешения для обеспечения безопасности. Кроме того, пользователям нужны соответствующие роли Microsoft Entra, например Security Reader, для доступа к конфиденциальным данным. Такой доступ на основе ролей добавляет дополнительный уровень безопасности.

При подключении через SDK Microsoft Graph PowerShell указывайте только те области доступа, которые нужны вашему скрипту. Эта практика соответствует принципу наименьших привилегий и снижает риски безопасности. Помните, что разрешения, предоставленные вашему приложению, действуют для всех его пользователей, поэтому регулярно их проверяйте и управляйте ими.

Понимая и грамотно настраивая разрешения, вы защищаете свою среду, одновременно обеспечивая мощную автоматизацию с PowerShell + Graph API.

Идентичность приложения в Azure AD

Регистрация нового приложения

Чтобы автоматизировать задачи Microsoft 365 с помощью PowerShell и Graph API, сначала нужно зарегистрировать приложение в Azure Active Directory (Azure AD). Это приложение выступает в роли идентичности, которую ваши скрипты используют для безопасного доступа к Microsoft Graph. Следуйте этим шагам, чтобы зарегистрировать ваше приложение:

  1. Откройте портал Azure и перейдите в Azure Active Directory > Регистрации приложений > Новая регистрация.
  2. Дайте приложению понятное имя, например «My Graph App».
  3. Выберите поддерживаемые типы учетных записей:
    • Один арендатор: войти могут только пользователи вашего арендатора Azure AD.
    • Несколько арендаторов: войти могут пользователи из любого арендатора Azure AD.
    • Несколько арендаторов и личные учетные записи: включает пользователей Azure AD и личные учетные записи Microsoft.

Apple Podcasts · Spotify · YouTube · YouTube Music

Use Managed Identity with PowerShell for Microsoft Graph (English)