Краткое руководство. Вход пользователей и вызов API Microsoft Graph из веб-приложения ASP.NET Core

В этом кратком руководстве используется пример веб-приложения ASP.NET Core для отображения способа входа пользователей с помощью потока кода авторизации и вызова API Microsoft Graph. В примере используется библиотека проверки подлинности Майкрософт для .NET и Веб-сайта удостоверений Майкрософт для обработки проверки подлинности.

Необходимые компоненты

Регистрация идентификаторов приложения и записей

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

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

  2. Если у вас есть доступ к нескольким клиентам, используйте значок Параметры в верхнем меню, чтобы переключиться на клиент, в котором вы хотите зарегистрировать приложение из меню каталогов и подписок.

  3. Перейдите к приложениям> удостоверений>Регистрация приложений выберите "Создать регистрацию".

  4. Введите имя приложения, например identity-client-web-app.

  5. Для параметра Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации. Для получения сведений о различных типах учетных записей выберите параметр "Справка ".

  6. Выберите Зарегистрировать.

    Снимок экрана: ввод имени и выбор типа учетной записи в Центре администрирования Microsoft Entra.

  7. Панель обзора приложения отображается при завершении регистрации. Запишите идентификатор каталога (клиента) и идентификатор приложения (клиента), которые будут использоваться в исходном коде приложения.

    Снимок экрана: значения идентификатора на странице обзора в Центре администрирования Microsoft Entra.

    Примечание.

    Поддерживаемые типы учетных записей можно изменить, ссылаясь на изменение учетных записей, поддерживаемых приложением.

Добавление URI перенаправления платформы

Чтобы указать тип приложения для регистрации приложения, выполните следующие действия.

  1. В разделе Управление выберите Проверка подлинности.
  2. На странице конфигураций платформы выберите "Добавить платформу" и выберите "Веб-параметр".
  3. Введите https://localhost:5001/signin-oidcURI перенаправления.
  4. В разделе URL-адрес выхода front-channel введите https://localhost:5001/signout-callback-oidc для выхода.
  5. Нажмите кнопку "Настроить", чтобы сохранить изменения.

Клонирование или скачивание примера приложения

Чтобы получить пример приложения, можно клонировать его из GitHub или скачать его в виде файла .zip .

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

    git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet.git
    
  • Скачайте файл .zip. Извлеките его в путь к файлу, где длина имени меньше 260 символов.

Создание и отправка самозаверяющего сертификата

  1. Используя терминал, используйте следующие команды, чтобы перейти к созданию самозаверяющего сертификата в каталоге проекта.

    cd ms-identity-docs-code-dotnet\web-app-aspnet\
    dotnet dev-certs https -ep ./certificate.crt --trust
    
  2. Вернитесь в Центр администрирования Microsoft Entra и в разделе "Управление" выберите "Сертификаты" и "Отправить сертификат секретов>".

  3. Перейдите на вкладку "Сертификаты" (0), а затем нажмите кнопку "Отправить сертификат".

  4. Появится область "Отправить сертификат". Используйте значок, чтобы перейти к файлу сертификата, созданному на предыдущем шаге, и нажмите кнопку "Открыть".

  5. Введите описание сертификата, например сертификат для aspnet-web-app, и нажмите кнопку "Добавить".

  6. Запишите значение отпечатка для использования на следующем шаге.

Настройка проекта

  1. В интегрированной среде разработки откройте папку проекта ms-identity-docs-code-dotnet \web-app-aspnet, содержащую пример.

  2. Откройте appsettings.json и замените содержимое файла следующим фрагментом кода;

    {
    "AzureAd": {
      "Instance": "https://login.microsoftonline.com/",
      "TenantId": "Enter the tenant ID obtained from the Microsoft Entra admin center",
      "ClientId": "Enter the client ID obtained from the Microsoft Entra admin center",
      "ClientCertificates": [
        {
          "SourceType": "StoreWithThumbprint",
          "CertificateStorePath": "CurrentUser/My",
          "CertificateThumbprint": "Enter the certificate thumbprint obtained the Microsoft Entra admin center"
        }   
      ],
      "CallbackPath": "/signin-oidc"
    },
      "DownstreamApi": {
        "BaseUrl": "https://graph.microsoft.com/v1.0/",
        "RelativePath": "me",
        "Scopes": [ 
          "user.read" 
        ]
      },
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft.AspNetCore": "Warning"
        }
      },
      "AllowedHosts": "*"
    }
    
    • TenantId — идентификатор клиента, в котором зарегистрировано приложение. Замените текст в кавычках Directory (tenant) ID записанным ранее на странице обзора зарегистрированного приложения.
    • ClientId — идентификатор приложения, который также называется клиентом. Замените текст в кавычках Application (client) ID значением, записанным ранее на странице обзора зарегистрированного приложения.
    • ClientCertificates — Самозаверяющий сертификат используется для проверки подлинности в приложении. Замените текст CertificateThumbprint отпечатка сертификата, записанного ранее.

Запуск приложения и вход

  1. В каталоге проекта используйте терминал, чтобы ввести следующую команду;

    dotnet run
    
  2. Скопируйте URL-адрес, отображаемый https в терминале, например, https://localhost:5001и вставьте его в браузер. Рекомендуется использовать частный или инкогнито браузерный сеанс.

  3. Выполните действия и введите необходимые сведения для входа с помощью учетной записи Майкрософт. Вам предлагается указать адрес электронной почты, чтобы один раз был отправлен секретный код. Введите код при появлении запроса.

  4. Приложение запрашивает разрешение на обслуживание доступа к данным, к ним предоставлен доступ, а также для входа и чтения профиля. Выберите Принять.

  5. На следующем снимке экрана показано, что вы вошли в приложение и получили доступ к сведениям о профиле из API Microsoft Graph.

    Снимок экрана: результаты вызова API.

Выход из приложения

  1. Найдите ссылку выхода в правом верхнем углу страницы и выберите ее.
  2. Вам будет предложено выбрать учетную запись для выхода. Выберите учетную запись, используемую для входа.
  3. Появится сообщение, указывающее, что вы выполнили выход. Теперь вы можете закрыть окно браузера.