Поделиться через


Использование проверки подлинности только для приложений с помощью Интерфейса командной строки Microsoft Graph

Интерфейс командной строки Microsoft Graph (CLI) поддерживает два типа проверки подлинности: делегированный доступ и доступ только для приложений. В этом разделе описывается конфигурация, необходимая для включения доступа только для приложений.

Примечание.

Доступ только для приложений предоставляет разрешения непосредственно приложению и требует, чтобы администратор согласился на необходимые области разрешений. Дополнительные сведения см. в разделе платформа удостоверений Майкрософт и поток учетных данных клиента OAuth 2.0.

В этом разделе вы настроите доступ только для приложений для простого скрипта, чтобы получить список пользователей и групп в клиенте Microsoft 365.

Конфигурация

Прежде чем использовать доступ только для приложений с пакетом SDK, вам потребуется следующее:

  • Сертификат, используемый в качестве учетных данных для приложения. Это может быть самозаверяющий сертификат или сертификат от центра. Дополнительные сведения о создании самозаверяющего сертификата см. в разделе Связанное содержимое .
  • Зарегистрируйте приложение в Microsoft Entra ID, настройте его с помощью областей разрешений, необходимых для вашего сценария, и предоставьте общий доступ к открытому ключу для сертификата.

Сертификат

Вам потребуется сертификат X.509, установленный в доверенном хранилище пользователя на компьютере, где вы будете выполнять скрипт. Вам также потребуется экспорт открытого ключа сертификата в формате .cer, PEM или CRT. Вам потребуется значение субъекта сертификата или его отпечаток.

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

Приложение можно зарегистрировать в Центр администрирования Microsoft Entra.

  1. Войдите в центр администрирования Microsoft Entra .

  2. Разверните меню >Удостоверение, выберите Приложения>Регистрация приложений>Новая регистрация.

  3. На страницеЗарегистрировать приложение задайте необходимые значения следующим образом.

    • Введите имяGraph CLI App-Only.
    • Задайте для параметра Поддерживаемые типы учетных записейзначение Учетные записи только в этом каталоге организации.
    • Оставьте URI перенаправления пустым.
  4. Нажмите Зарегистрировать. На странице Graph CLI App-Only скопируйте значения идентификатора приложения (клиента) и идентификатора каталога (клиента) и сохраните их.

    Снимок экрана с идентификатором приложения для новой регистрации

  5. В разделе Управление выберите Разрешения API. Выберите Добавить разрешение.

  6. Выберите Microsoft Graph, а затем — Разрешения приложения. Добавьте User.Read.All и Group.Read.All, а затем выберите Добавить разрешения.

  7. В разделе Настроенные разрешения удалите делегированное разрешение User.Read в Microsoft Graph , выбрав ... справа от разрешения и выбрав Удалить разрешение. Выберите Да, удалить, чтобы подтвердить.

  8. Нажмите кнопку Предоставить согласие администратора для... и нажмите кнопку Да , чтобы предоставить согласие администратора для настроенных разрешений приложения. Столбец Состояние в таблице Настроенные разрешения изменится на Предоставленные для ....

    Снимок экрана: настроенные разрешения с предоставленным согласием администратора

  9. В разделе Управление выберите Сертификаты & секреты, а затем перейдите на вкладку Сертификаты . Нажмите кнопку Отправить сертификат . Перейдите к файлу открытого ключа сертификата и нажмите кнопку Добавить.

Проверка подлинности

После завершения предыдущих действий по настройке у вас должны быть три элемента:

  • Субъект сертификата или отпечаток сертификата, отправленного в 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