Краткое руководство. Настройка Устойчивые функции с помощью управляемого удостоверения

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

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

Примечание.

Управляемое удостоверение поддерживается в Устойчивые функции расширения версии 2.7.0 и более поздних версий.

Если у вас нет учетной записи Azure, создайте бесплатную учетную запись, прежде чем начинать работу.

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

Для работы с этим кратким руководством вам понадобится:

  • Существующий проект Устойчивые функции, созданный в портал Azure или локальном проекте Устойчивые функции, развернутом в Azure.
  • Знакомство с приложением Устойчивые функции в Azure.

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

Сервер локальной

Использование эмулятора служба хранилища Azure

При разработке локально рекомендуется использовать Azurite, который является локальным эмулятором служба хранилища Azure. Настройте приложение в эмуляторе, указав "AzureWebJobsStorage": "UseDevelopmentStorage = true" в local.settings.json.

Подключения на основе удостоверений для локальной разработки

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

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

  • локальный кэш, совместно используемый приложениями Майкрософт;
  • контекст текущего пользователя в Visual Studio;
  • контекст текущего пользователя в Visual Studio Code;
  • контекст текущего пользователя в Azure CLI.

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

Настройка среды выполнения для использования локального удостоверения разработчика

  1. Укажите имя учетной записи служба хранилища Azure в local.settings.json, например:

    {
       "IsEncrypted": false,
       "Values": {
          "AzureWebJobsStorage__accountName": "<<your Azure Storage account name>>",
          "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated"
       }
    }
    
  2. Перейдите к ресурсу учетной записи служба хранилища Azure на портал Azure, перейдите на вкладку контроль доступа (IAM) и нажмите кнопку "Добавить назначение ролей". Найдите следующие роли:

    • Участник для данных очереди хранилища
    • Участник данных BLOB-объектов хранилища
    • Участник данных таблицы хранилища

    Назначьте роли себе, нажав кнопку "+ Выбрать участников" и найдите сообщение электронной почты во всплывающем окне. (Это электронная почта, используемая для входа в приложения Майкрософт, Azure CLI или редакторы в семействе Visual Studio.)

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

Подключения на основе удостоверений для приложения, развернутого в Azure

Включение ресурса управляемого удостоверения

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

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

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

  • Участник для данных очереди хранилища
  • Участник данных BLOB-объектов хранилища
  • Участник данных таблицы хранилища

Чтобы найти ресурс удостоверений, выберите "Назначить доступ к управляемому удостоверению ", а затем + "Выбрать участников"

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

Добавление конфигурации управляемого удостоверения в приложение

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

  1. В портал Azure в меню ресурсов приложения-функции в разделе "Параметры" выберите переменные среды.

  2. В списке параметров найдите AzureWebJobsStorage и щелкните значок "Удалить ". Снимок экрана: параметр хранилища по умолчанию.

  3. Добавьте параметр для связывания учетной записи хранения Azure с приложением.

    Используйте один из следующих методов в зависимости от облака, в котором работает ваше приложение:

    • Облако Azure. Если приложение работает в глобальной среде Azure, добавьте параметр AzureWebJobsStorage__accountName , определяющий имя учетной записи хранения Azure. Пример значения: mystorageaccount123.

    • Не в облаке Azure. Если приложение работает в облаке за пределами Azure, необходимо добавить следующие три параметра, чтобы предоставить определенные URI службы (или конечные точки) учетной записи хранения вместо имени учетной записи хранения.

      • Имя параметра: AzureWebJobsStorage__blobServiceUri

        Пример значения: https://mystorageaccount123.blob.core.windows.net/.

      • Имя параметра: AzureWebJobsStorage__queueServiceUri

        Пример значения: https://mystorageaccount123.queue.core.windows.net/.

      • Имя параметра: AzureWebJobsStorage__tableServiceUri

        Пример значения: https://mystorageaccount123.table.core.windows.net/.

    Значения этих переменных URI можно получить на вкладке "Конечные точки".

    Снимок экрана: пример конечной точки.

    Примечание.

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

  4. Завершите настройку управляемого удостоверения (не забудьте нажать кнопку "Применить" после внесения изменений в параметр):

    • Если вы используете назначаемое системой удостоверение, внесите никаких других изменений.

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

      • AzureWebJobsStorage__credential, ввод управляемого идентификатора

      • AzureWebJobsStorage__clientId получить это значение GUID из ресурса управляемого удостоверения

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

    Примечание.

    Устойчивые функции не поддерживается managedIdentityResourceId при использовании удостоверения, назначаемого пользователем. Вместо этого используйте clientId.