Использование проверки подлинности только для приложений с помощью Интерфейса командной строки Microsoft Graph
Интерфейс командной строки Microsoft Graph (CLI) поддерживает два типа проверки подлинности: делегированный доступ и доступ только для приложений. В этом разделе описывается конфигурация, необходимая для включения доступа только для приложений.
Примечание.
Доступ только для приложений предоставляет разрешения непосредственно приложению и требует, чтобы администратор согласился на необходимые области разрешений. Дополнительные сведения см. в разделе платформа удостоверений Майкрософт и поток учетных данных клиента OAuth 2.0.
В этом разделе вы настроите доступ только для приложений для простого скрипта, чтобы получить список пользователей и групп в клиенте Microsoft 365.
Конфигурация
Прежде чем использовать доступ только для приложений с пакетом SDK, вам потребуется следующее:
- Сертификат, используемый в качестве учетных данных для приложения. Это может быть самозаверяющий сертификат или сертификат от центра. Дополнительные сведения о создании самозаверяющего сертификата см. в разделе Связанное содержимое .
- Зарегистрируйте приложение в Microsoft Entra ID, настройте его с помощью областей разрешений, необходимых для вашего сценария, и предоставьте общий доступ к открытому ключу для сертификата.
Сертификат
Вам потребуется сертификат X.509, установленный в доверенном хранилище пользователя на компьютере, где вы будете выполнять скрипт. Вам также потребуется экспорт открытого ключа сертификата в формате .cer, PEM или CRT. Вам потребуется значение субъекта сертификата или его отпечаток.
Регистрация приложения
Приложение можно зарегистрировать в Центр администрирования Microsoft Entra.
Войдите в центр администрирования Microsoft Entra .
Разверните меню >Удостоверение, выберите Приложения>Регистрация приложений>Новая регистрация.
На страницеЗарегистрировать приложение задайте необходимые значения следующим образом.
- Введите имя
Graph CLI App-Only
. - Задайте для параметра Поддерживаемые типы учетных записейзначение Учетные записи только в этом каталоге организации.
- Оставьте URI перенаправления пустым.
- Введите имя
Нажмите Зарегистрировать. На странице Graph CLI App-Only скопируйте значения идентификатора приложения (клиента) и идентификатора каталога (клиента) и сохраните их.
В разделе Управление выберите Разрешения API. Выберите Добавить разрешение.
Выберите Microsoft Graph, а затем — Разрешения приложения. Добавьте User.Read.All и Group.Read.All, а затем выберите Добавить разрешения.
В разделе Настроенные разрешения удалите делегированное разрешение User.Read в Microsoft Graph , выбрав ... справа от разрешения и выбрав Удалить разрешение. Выберите Да, удалить, чтобы подтвердить.
Нажмите кнопку Предоставить согласие администратора для... и нажмите кнопку Да , чтобы предоставить согласие администратора для настроенных разрешений приложения. Столбец Состояние в таблице Настроенные разрешения изменится на Предоставленные для ....
В разделе Управление выберите Сертификаты & секреты, а затем перейдите на вкладку Сертификаты . Нажмите кнопку Отправить сертификат . Перейдите к файлу открытого ключа сертификата и нажмите кнопку Добавить.
Проверка подлинности
После завершения предыдущих действий по настройке у вас должны быть три элемента:
- Субъект сертификата или отпечаток сертификата, отправленного в Microsoft Entra регистрации приложения.
- Идентификатор приложения для регистрации приложения.
- Идентификатор клиента.
Эти сведения будут использоваться для проверки проверки подлинности. Откройте PowerShell и выполните следующую команду, заменив заполнители своими сведениями.
mgc login --client-id YOUR_APP_ID --tenant-id YOUR_TENANT_ID --certificate-name "YOUR_CERT_SUBJECT" --strategy ClientCertificate
Кроме того, вместо субъекта можно использовать отпечаток сертификата.
mgc login --client-id YOUR_APP_ID --tenant-id YOUR_TENANT_ID --certificate-thumb-print "YOUR_CERT_THUMBPRINT" --strategy ClientCertificate
Вывод списка пользователей и групп
Выполните следующую команду, чтобы получить список первых 50 пользователей в клиенте в формате таблицы.
mgc users list --select displayName,id --top 50 --output TABLE
Команда возвращает отображаемые имена и идентификаторы пользователей в таблице.
┌────────────────────────────────────┬──────────────────────────────────────────────────┐
│ displayName │ id │
├────────────────────────────────────┼──────────────────────────────────────────────────┤
│ Conf Room Adams │ 70214bd8-c3eb-4ec4-8c3e-9027b2764c52 │
│ Adele Vance │ 05fb57bf-2653-4396-846d-2f210a91d9cf │
│ MOD Administrator │ 965d30b5-f1ba-4f59-90f0-4d81dfb1aa42 │
│ Alex Wilber │ a36fe267-a437-4d24-b39e-7344774d606c │
│ Allan Deyoung │ 54cebbaa-2c56-47ec-b878-c8ff309746b0 │
└────────────────────────────────────┴──────────────────────────────────────────────────┘
Выполните следующую команду, чтобы получить список первых 50 групп в клиенте в формате JSON.
mgc groups list --select displayName,id --top 50
Команда возвращает отображаемые имена и идентификаторы групп в формате JSON.
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups(displayName,id)",
"value": [
{
"displayName": "Parents of Contoso",
"id": "1a0405b3-57d1-48fc-ad18-6cb63b350826"
},
{
"displayName": "Digital Initiative Public Relations",
"id": "22cf3814-dbef-4eb0-abe3-759b320b7d76"
},
{
"displayName": "Communications",
"id": "268360c5-ad3a-44c0-b35c-cef473609d9d"
},
{
"displayName": "Paralegals",
"id": "2fb31b50-4c46-4ae9-8177-19347e68ce8e"
},
{
"displayName": "Leadership",
"id": "364fad81-7c37-455d-94bb-7d5a209c42fe"
},
]
}
Выход
Наконец, выйдите из CLI.
mgc logout