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


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

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

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

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

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

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

  • Azure CLI
  • CLI разработчика Azure
  • Azure PowerShell
  • Visual Studio Code
  • IntelliJ IDEA

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

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

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

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

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

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

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

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

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

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

  5. Выберите ссылку "Нет участников" в разделе "Участники", чтобы добавить участников в группу.

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

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

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

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

  1. На портале Azure перейдите на страницу Overview группы ресурсов, содержащей приложение.

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

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

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

  5. На вкладке "Члены" :

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

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

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

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

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

Разработчики, использующие Visual Studio Code, могут аутентифицироваться с помощью учётной записи разработчика прямо в редакторе через брокер. Приложения, которые используют DefaultAzureCredential или VisualStudioCodeCredential затем могут использовать эту учетную запись для проверки подлинности запросов приложений с помощью простого единого входа.

  1. В Visual Studio Code перейдите на панель Extensions и установите расширение Azure Resources. Это расширение позволяет просматривать ресурсы Azure и управлять ими непосредственно из Visual Studio Code. Он также использует встроенный в Visual Studio Code поставщик проверки подлинности от Microsoft для аутентификации с Azure.

    Скриншот с дополнением Azure Resources.

  2. Откройте палитру команд в Visual Studio Code, а затем найдите и выберите Azure: войдите.

    Скриншот, показывающий, как войти в Azure через Visual Studio Code.

    Подсказка

    Откройте палитру команд с помощью Ctrl+Shift+P в Windows/Linux или Cmd+Shift+P в macOS.

Аутентификация для подключения к службам Azure из вашего приложения

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

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

  1. Добавьте зависимость azure-identity в ваш pom.xml файл:

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-identity</artifactId>
    </dependency>
    
  2. Выберите одну из реализаций данных для аутентификации в зависимости от вашего сценария.

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

Передайте экземпляр TokenCredential, соответствующий конкретному средству разработки, конструктору клиента службы Azure, например AzureCliCredential.

import com.azure.identity.AzureCliCredential;
import com.azure.identity.AzureCliCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;

AzureCliCredential credential = new AzureCliCredentialBuilder().build();

SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

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

  • AzureCliCredential / AzureCliCredentialBuilder
  • AzureDeveloperCliCredential / AzureDeveloperCliCredentialBuilder
  • AzurePowerShellCredential / AzurePowerShellCredentialBuilder
  • IntelliJCredential / IntelliJCredentialBuilder
  • VisualStudioCodeCredential / VisualStudioCodeCredentialBuilder

Использование учетных данных, доступных для использования в любом средстве разработки

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

import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;

DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
    .requireEnvVars(AzureIdentityEnvVars.AZURE_TOKEN_CREDENTIALS)
    .build();

SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

Дальнейшие действия

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

Если возникают проблемы, связанные с проверкой подлинности среды разработки, см. статью "Устранение неполадок с проверкой подлинности среды разработки".

После освоения аутентификации ознакомьтесь со статьей Настройка ведения журнала в Azure SDK для Java, чтобы получить информацию о предоставляемой SDK функциональности ведения журнала.