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


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

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

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

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

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

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

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

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

  1. На портале Azure найдите свою учетную запись хранения, воспользовавшись основной панелью поиска или областью навигации слева.

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

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

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

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

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

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

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

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

Внимание

В большинстве случаев для распространения назначения ролей в 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. Определите расположения в коде QueueClient , создающие объект для подключения к хранилищу очередей Azure. Обновите свой код, чтобы он соответствовал следующему примеру:

    DefaultAzureCredential credential = new();
    
    QueueClient queueClient = new(
         new Uri($"https://{storageAccountName}.queue.core.windows.net/{queueName}"),
         new DefaultAzureCredential());
    
  1. Обязательно обновите имя учетной записи хранения в URI объекта QueueClient . Имя учетной записи хранения можно найти на странице обзора портал 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. В поле поиска ролей найдите участника данных очереди хранилища, которая является общей ролью, используемой для управления операциями данных для очередей. Вы можете назначить любую роль, подходящую для вашего варианта использования. Выберите участника данных очереди хранилища из списка и нажмите кнопку "Далее".

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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