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


Проверка подлинности приложений .NET в службах Azure во время локальной разработки с помощью учетных записей разработчиков

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

В этой статье объясняется, как пройти проверку подлинности с помощью учетной записи разработчика с инструментами, поддерживаемыми библиотекой удостоверений Azure. В следующих разделах вы узнаете:

  • Использование групп Microsoft Entra для эффективного управления разрешениями для нескольких учетных записей разработчиков.
  • Назначение ролей учетным записям разработчиков для определения области действия разрешений.
  • Как войти в поддерживаемые локальные средства разработки.
  • Как пройти проверку подлинности с помощью учетной записи разработчика из кода приложения.

Поддерживаемые средства разработчика для проверки подлинности

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

  • Azure CLI
  • Azure Developer CLI
  • Azure PowerShell
  • Visual Studio
  • Visual Studio Code

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

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

Создание группы Microsoft Entra для локальной разработки

Создайте группу Microsoft Entra, чтобы объединять роли (разрешения), необходимые приложению при локальной разработке, а не назначать роли отдельным объектам службы-принципала. Этот подход обеспечивает следующие преимущества:

  • Каждый разработчик имеет одинаковые роли, назначенные на уровне группы.
  • Если для приложения требуется новая роль, ее необходимо только добавить в группу для приложения.
  • Если новый разработчик присоединяется к команде, для разработчика создается новая учетная запись службы приложений и добавляется в группу, гарантируя, что разработчик имеет необходимые разрешения на работу с приложением.
  • Портал Azure
  • Azure CLI
  1. Перейдите на страницу обзора идентификатора Microsoft Entra на портале Azure.

  2. Выберите Все группы в левом меню.

  3. На странице Группы выберите Создать группу.

  4. На странице Новая группа заполните следующие поля формы:

    • Тип группы: Выберите безопасность .
    • имя группы: введите имя группы, которая содержит ссылку на имя приложения или среды.
    • описание группы: введите описание, объясняющее назначение группы.

    Снимок экрана, показывающий, как создать группу на портале Azure.

  5. Чтобы добавить участников в группу, выберите ссылку «Нет выбранных участников» под разделом «Участники».

  6. На открывшейся всплывающей панели найдите созданную ранее основную служебную учетную запись и выберите её из результатов фильтрации. Нажмите кнопку Выбрать в нижней части панели, чтобы подтвердить выбор.

  7. Выберите Создать в нижней части страницы Новая группа, чтобы создать группу и вернуться на страницу Все группы. Если вы не видите новую группу, подождите минуту и обновите страницу.

Назначьте роли группе

Затем определите, какие роли (разрешения) приложения требуются для ресурсов и назначьте эти роли созданной группе Microsoft Entra. Группы можно назначить роль в ресурсе, группе ресурсов или области подписки. В этом примере показано, как назначать роли в области группы ресурсов, поскольку большинство приложений группируют все свои ресурсы Azure в одну группу ресурсов.

  • Портал Azure
  • Azure CLI
  1. На портале Azure перейдите на страницу Обзор группы ресурсов, содержащей ваше приложение.

  2. Выберите управление доступом (IAM) в левой панели навигации.

  3. На странице управления доступом (IAM) выберите + Добавить и затем выберите Добавить назначение роли в раскрывающемся меню. Страница добавления назначения ролей содержит несколько вкладок для настройки и назначения ролей.

  4. На вкладке роль используйте поле поиска, чтобы найти роль, которую вы хотите назначить. Выберите роль, затем нажмите Далее.

  5. На вкладке членов:

    • Чтобы назначить доступ к значению, выберите пользователя, группу или главного объекта службы.
    • Для значения участников выберите + Выберите участников, чтобы открыть панель Выберите участников.
    • Найдите созданную ранее группу Microsoft Entra и выберите ее из отфильтрованных результатов. Выберите , чтобы выбрать группу и закрыть панель всплывающих элементов.
    • Выберите Назначить и проверить в нижней части вкладки Участники.

    Снимок экрана, показывающий, как назначить роль группе Microsoft Entra.

  6. На вкладке "Проверка и назначение" выберите "Проверка и назначение" в нижней части страницы.

Вход в Azure с помощью средств разработчика

Затем войдите в Azure с помощью одного из нескольких средств разработчика, которые можно использовать для проверки подлинности в среде разработки. Учетная запись, которую вы используете для проверки подлинности, также должна быть в принадлежащей ранее созданной и настроенной вами группе Microsoft Entra.

Разработчики, использующие Visual Studio 2017 или более поздней версии, могут пройти проверку подлинности с помощью учетной записи разработчика через интегрированную среду разработки. Приложения, использующие DefaultAzureCredential или VisualStudioCredential, могут обнаруживать и использовать эту учетную запись для проверки подлинности запросов приложений при локальном запуске. Эта учетная запись также используется при публикации приложений непосредственно из Visual Studio в Azure.

Это важно

Вам потребуется установить рабочую нагрузку разработки Azure, чтобы включить средства Visual Studio для проверки подлинности, разработки и развертывания Azure.

  1. В Visual Studio перейдите в раздел Средства>Параметры, чтобы открыть диалоговое окно параметров.

  2. В поле Параметры поиска в верхней части введите Azure, чтобы отфильтровать доступные параметры.

  3. В разделе Проверка подлинности службы Azure выберите Выбор учетной записи.

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

  5. В открывавшемся окне введите учетные данные для нужной учетной записи Azure и подтвердите входные данные.

    Снимок экрана, показывающий, как войти в Azure с помощью Visual Studio.

  6. Нажмите кнопку "ОК", чтобы закрыть диалоговое окно параметров.

Авторизация в службах Azure из вашего приложения

Библиотека удостоверений Azure предоставляет реализацииTokenCredential, которые поддерживают различные сценарии и потоки проверки подлинности Microsoft Entra. В шагах выше показано, как использовать DefaultAzureCredential или определенные учетные данные средства разработки при локальной работе с учетными записями пользователей.

Реализация кода

Выполните следующие действия.

  1. Добавьте ссылки на пакеты Azure.Identity и Microsoft.Extensions.Azure в проекте:

    dotnet add package Azure.Identity
    dotnet add package Microsoft.Extensions.Azure
    
  2. В Program.cs добавьте директивы using для пространств имен Azure.Identity и Microsoft.Extensions.Azure.

  3. Зарегистрируйте клиент службы Azure, используя соответствующий метод расширения с префиксом Add.

    Доступ к службам Azure предоставляется с помощью специализированных клиентских классов из клиентских библиотек azure SDK. Зарегистрируйте эти типы клиентов, чтобы получить доступ к ним с помощью внедрения зависимостей в приложении.

  4. Передайте экземпляр TokenCredential в метод UseCredential. Ниже приведены распространенные TokenCredential примеры:

    • Экземпляр DefaultAzureCredential оптимизированный для локальной разработки. В этом примере для переменной AZURE_TOKEN_CREDENTIALS среды задано значение dev. Дополнительные сведения см. в разделе "Исключить категорию типов учетных данных".

      builder.Services.AddAzureClients(clientBuilder =>
      {
          clientBuilder.AddBlobServiceClient(
              new Uri("https://<account-name>.blob.core.windows.net"));
      
          DefaultAzureCredential credential = new(
              DefaultAzureCredential.DefaultEnvironmentVariableName);
          clientBuilder.UseCredential(credential);
      });
      
    • Экземпляр учетных данных, соответствующих конкретному средству разработки, например VisualStudioCredential.

      builder.Services.AddAzureClients(clientBuilder =>
      {
          clientBuilder.AddBlobServiceClient(
              new Uri("https://<account-name>.blob.core.windows.net"));
      
          VisualStudioCredential credential = new();
          clientBuilder.UseCredential(credential);
      });
      

    Подсказка

    Когда ваша команда использует несколько средств разработки для проверки подлинности в Azure, предпочтение следует отдавать локальному экземпляру, оптимизированному для разработки, вместо учетных данных, специфичных для инструмента DefaultAzureCredential.