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

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

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

Настройка локальной среды разработки.

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

Назначение ролей пользователей

При локальной разработке убедитесь, что учетная запись пользователя, доступ к Центры событий Azure имеет правильные разрешения. Вам потребуется Центры событий Azure приемник данных и роли отправителя данных Центры событий Azure для чтения и записи данных. Чтобы назначить себе эту роль, вам потребуется назначить роль Администратор istrator для доступа пользователей или другую роль, включающую действие Microsoft.Authorization/roleAssignments/write. Роли Azure RBAC можно назначить пользователю с помощью портала Azure, Azure CLI или Azure PowerShell. Узнайте больше о доступных область для назначений ролей на странице обзора область.

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

  1. В портал Azure найдите центр событий с помощью главной панели поиска или навигации слева.

  2. На странице обзора концентратора событий выберите элемент управления доступом (IAM) в меню слева.

  3. На странице Контроль доступа (IAM) откройте вкладку Назначения ролей.

  4. Выберите + Добавить в верхнем меню, а затем выберите Добавить назначение роли в появившемся раскрывающемся меню.

    Снимок экрана, на котором продемонстрировано назначение роли.

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

  6. В разделе Назначение доступа для выберите Пользователь, группа или субъект-служба и + Выбрать членов.

  7. В диалоговом окне найдите имя пользователя Microsoft Entra (обычно ваш user@domain адрес электронной почты), а затем выберите в нижней части диалогового окна.

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

  9. Повторите эти действия для роли приемника данных Центры событий Azure, чтобы разрешить учетной записи отправлять и получать сообщения.

Внимание

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

Вход в Azure локально

Для локальной разработки убедитесь, что вы прошли проверку подлинности с той же учетной записью Microsoft Entra, которую вы назначили роли. Вы можете пройти проверку подлинности с помощью популярных средств разработки, таких как Azure CLI или Azure PowerShell. Средства разработки, с помощью которых можно пройти проверку подлинности на разных языках.

Войдите в Azure с помощью Azure CLI, выполнив следующую команду:

az login

Обновление кода приложения для использования бессерверных подключений

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

DefaultAzureCredential поддерживает несколько методов проверки подлинности. Метод, используемый, определяется во время выполнения. Такой подход позволяет приложению использовать различные способы проверки подлинности в разных средах (локальной и рабочей) без реализации кода для конкретной среды. См. приведенные выше ссылки на порядок и расположения, в которых DefaultAzureCredential будут искать учетные данные.

  1. Чтобы использовать DefaultAzureCredential в приложении .NET, установите Azure.Identity пакет:

    dotnet add package Azure.Identity
    
  2. В верхней части файла добавьте следующий код:

    using Azure.Identity;
    
  3. Определите расположения в коде, создающие EventHubProducerClient или EventProcessorClient объект для подключения к Центры событий Azure. Обновите свой код, чтобы он соответствовал следующему примеру:

    DefaultAzureCredential credential = new();
    var eventHubNamespace = $"https://{namespace}.servicebus.windows.net";
    
    // Event Hubs producer
    EventHubProducerClient producerClient = new(
        eventHubNamespace,
        eventHubName,
        credential);
    
    // Event Hubs processor
    EventProcessorClient processorClient = new(
        storageClient,
        EventHubConsumerClient.DefaultConsumerGroupName,
        eventHubNamespace,
        eventHubName,
        credential);
    
  1. Обязательно обновите пространство имен центров событий в URI ваших EventHubProducerClient или EventProcessorClient объектов. Имя пространства имен можно найти на странице обзора портал Azure.

    Снимок экрана: поиск имени пространства имен.

Локальный запуск приложения

После внесения этих изменений кода запустите приложение локально. Новая конфигурация должна получить локальные учетные данные, например из Azure CLI, Visual Studio или IntelliJ. Роли, назначенные пользователю в Azure, позволяют приложению подключаться к службе Azure локально.

Настройка среды размещения Azure

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

Создание управляемого удостоверения

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

  1. В верхней части портал Azure найдите управляемые удостоверения. Выберите результат управляемых удостоверений.
  2. Нажмите кнопку " + Создать " в верхней части страницы обзора управляемых удостоверений.
  3. На вкладке "Основные сведения" введите следующие значения:
    • Подписка: выберите нужную подписку.
    • Группа ресурсов: выберите нужную группу ресурсов.
    • Регион: выберите ближайший регион.
    • Имя: введите распознаваемое имя удостоверения, например MigrationIdentity.
  4. В нижней части страницы выберите Review + create (Проверить и создать).
  5. После завершения проверки проверка нажмите кнопку "Создать". Azure создает новое удостоверение, назначаемое пользователем.

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

Снимок экрана: создание управляемого удостоверения, назначаемого пользователем.

Связывание управляемого удостоверения с веб-приложением

Необходимо настроить веб-приложение для использования созданного управляемого удостоверения. Назначьте удостоверение приложению с помощью портал Azure или Azure CLI.

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

  • Azure Spring Apps
  • Приложения-контейнеры Azure
  • Виртуальные машины Azure
  • Служба Azure Kubernetes
  1. Перейдите на страницу обзора веб-приложения.

  2. Выберите удостоверение в области навигации слева.

  3. На странице "Удостоверение" перейдите на вкладку "Назначаемый пользователем".

  4. Нажмите кнопку +Добавить, чтобы открыть всплывающее окно добавления управляемого удостоверения, назначаемого пользователем.

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

  6. Найдите идентификатор migrationIdentity по имени и выберите его из результатов поиска.

  7. Нажмите кнопку "Добавить ", чтобы связать удостоверение с приложением.

    Снимок экрана: создание назначаемого пользователем удостоверения.

Назначение роли управляемому удостоверению

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

  1. Перейдите на страницу обзора концентратора событий и выберите контроль доступа (IAM) в области навигации слева.

  2. Выберите Добавить назначение ролей.

    Снимок экрана: добавление роли в управляемое удостоверение.

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

  4. На экране Добавление назначения ролей для параметра Назначение доступа для выберите Управляемое удостоверение. Затем нажмите + Выбрать членов.

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

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

  6. Нажмите кнопку Далее несколько раз, пока не сможете нажать кнопку Проверить и назначить, чтобы завершить назначение роли.

  7. Повторите эти действия для роли приемника данных Концентратора событий Azure.

Обновление кода приложения

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

  1. На странице обзора управляемого удостоверения скопируйте значение идентификатора клиента в буфер обмена.

  2. Примените следующие изменения, относящиеся к языку:

    DefaultAzureCredentialOptions Создайте объект и передайте его DefaultAzureCredentialв . Задайте для свойства ManagedIdentityClientId идентификатор клиента.

    DefaultAzureCredential credential = new(
        new DefaultAzureCredentialOptions
        {
            ManagedIdentityClientId = managedIdentityClientId
        });
    
  3. Повторно разверните код в Azure после внесения этого изменения в порядок применения обновлений конфигурации.

Тестирование приложения

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

Следующие шаги

Из этого учебника вы узнали, как выполнить переход приложения на подключение без пароля.

Дополнительные сведения о понятиях, описанных в этой статье, см. в следующих ресурсах: