Используйте Get-MSALtoken для подключения к MS Graph
Существует множество различных способов подключения к Microsoft Graph. Один из вариантов - использовать командлет Get-MSALToken, который позволяет получать токен доступа из Microsoft Entra как в интерактивном режиме, так и без участия пользователя, используя метод аутентификации MSAL.
Чтобы использовать MSAL, нам нужно зарегистрировать приложение в Microsoft Entra и установить необходимые разрешения, которые мы хотим предоставить подключению.
В этой статье я объясню, как настроить необходимое приложение Entra и как подключиться к Microsoft Graph с помощью клиента MSAL PowerShell.
Клиент MSAL для PowerShell
Модуль PowerShell MSAL.PS позволяет получать токен доступа от Microsoft Entra, который можно использовать для подключения к Microsoft Graph, например. Библиотека аутентификации Microsoft (MSAL) заменяет более старую библиотеку ADAL.
Модуль MSAL.PS можно использовать на всех платформах PowerShell, включая Azure Runbooks, что делает его идеальным для запуска скриптов в автономном режиме.
Чтобы получить токен доступа с помощью MSAL, мы можем войти в систему интерактивно, использовать секрет клиента или сертификат. Но для всех трех методов сначала нужно создать приложение в Microsoft Entra.
Убедитесь, что у вас установлен модуль PowerShell MSAL.PS:
Install-Module -Name MSAL.PS -Scope CurrentUserСоздание приложения Entra
Первый шаг - зарегистрировать сетевое приложение в Microsoft Entra. Это приложение позволяет нам настроить, какие разрешения Microsoft Graph мы хотим сделать доступными для подключения.
- Откройте Центр администрирования Microsoft Entra
- Раскройте Приложения и нажмите на Регистрация приложений
- Выберите Новую регистрацию
- Введите имя для приложения
- Выберите Только учетные записи в этом организационном каталоге
- Нажмите на Зарегистрироваться (нам не нужно вводить URI перенаправления)
Настройте разрешения
Создав приложение, нам теперь нужно настроить разрешения Microsoft Graph, которые нам необходимы для нашего скрипта. Разрешения аналогичны областям (scopes), поэтому если вы хотите узнать, какое разрешение установить, вы можете использовать тот же метод для поиска областей.
- Откройте разрешения API
- Нажмите на Добавить разрешения
- Выберите Microsoft Graph
- Выберите разрешение приложения
- Выберите разрешение, которое вы хотите добавить
- Нажмите на Глобальное согласие администратора для <имя арендатора>
Подключитесь интерактивно
Чтобы получить токен доступа, нам нужно знать идентификатор приложения (клиента) и ваш идентификатор арендатора. Оба можно найти в обзоре приложения, которое мы только что создали в Microsoft Entra.
- Откройте Microsoft Entra
- Перейдите в Идентичность >> Приложения >> Регистрация приложений
- Откройте ваше новое приложение
- Обратите внимание на идентификатор приложения (клиента) и идентификатор каталога (арендатора)
Теперь мы можем получить токен доступа с помощью следующей команды PowerShell. Обратите внимание, что я использовал хеш-таблицу и распаковку параметров для ввода деталей подключения, это делает код более читабельным:
$details = @{
'TenantId' = '11e55098-1234-5678-9101-ascasdhwlwde' # Directory (tenant) ID
'ClientId' = 'e6591897-c0c3-44d9-b9a9-afb75ac690ea' # Application (client) ID
'Interactive' = $true
}
$token = Get-MsalToken @detailsИнтерактивный метод откроет вкладку браузера, позволяя вам войти с вашими учетными данными. После этого мы можем использовать токен доступа для подключения к Microsoft Graph:
Connect-MgGraph -AccessToken ($token.AccessToken |ConvertTo-SecureString -AsPlainText -Force)Подключить без присмотра
Сила модуля MSAL.PS заключается в возможности входа без присутствия пользователя с использованием только идентификатора клиента и секрета. Для этого сначала необходимо создать новый клиентский секрет.
- Откройте новосозданное приложение в Microsoft Entra
- Перейдите в Сертификаты и секреты
- Нажмите на Секрет клиента
- Новый секрет клиента
- Введите описание и дату истечения, а затем нажмите Добавить
- Скопируйте секретное значение
Также нам понадобятся идентификатор клиента и идентификатор арендатора, которые вы можете найти на странице обзора приложения.
Собрав всю информацию, мы можем получить токен доступа с помощью команды Get-MsalToken и подключиться к Microsoft Graph с этим токеном:
$details = @{
'TenantId' = '11e55098-1234-5678-9101-ascasdhwlwde' # Directory (tenant) ID
'ClientId' = 'e6591897-c0c3-44d9-b9a9-afb75ac690ea' # Application (client) ID
'ClientSecret' = '5LN8Q~RoWIpTktjJXdlotv.JzB2Ks35U~ORcQbuG' | ConvertTo-SecureString -AsPlainText -Force
}
$token = Get-MsalToken @details
Connect-MgGraph -AccessToken ($token.AccessToken |ConvertTo-SecureString -AsPlainText -Force)Заключение
Cmdlet Get-MSALToken позволяет вам легко получить токен доступа от Microsoft Entra. Если вы хотите использовать токен для подключения к Microsoft Graph, то имейте в виду, что на самом деле вам не нужно использовать модуль MSAL.PS для этого.
Вы также можете достичь этого только с помощью модуля Microsoft Graph PowerShell. Прочитайте все, что вам нужно знать об этом в этой статье.
Надеюсь, вам понравилась эта статья. Если у вас есть какие-либо вопросы, просто оставьте комментарий ниже.



