Использование управляемых удостоверений для получения доступа к службе "Конфигурация приложений"

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

Конфигурация приложений Azure и ее .NET, платформа .NET Framework и клиентские библиотеки Java Spring поддерживают в них поддержку управляемых удостоверений. Хотя использование управляемого удостоверения является необязательным, это позволит устранить потребность в маркере доступа, который содержит секреты. Код может получить доступ к хранилищу Конфигурации приложений, используя только конечную точку службы. Этот URL-адрес можно внедрить непосредственно в код, не беспокоясь о раскрытии любых секретов.

В этой статье описывается, как можно воспользоваться преимуществами управляемого удостоверения для доступа к Конфигурации приложения. При этом в качестве основы используется код веб-приложения, представленный в кратких руководствах. Прежде чем продолжить, ознакомьтесь с разделом Создание приложения ASP.NET Core с помощью службы "Конфигурация приложений".

В этой статье описывается, как можно воспользоваться преимуществами управляемого удостоверения для доступа к Конфигурации приложения. При этом в качестве основы используется код веб-приложения, представленный в кратких руководствах. Прежде чем продолжить, выполните Создание приложения Java Spring с помощью службы "Конфигурация приложений Azure".

Внимание

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

Вы можете выполнять шаги в этом учебнике с помощью любого редактора кода. Visual Studio Code является отличным вариантом, который доступен на платформах Windows, macOS и Linux.

Вы узнаете, как выполнять следующие задачи:

  • предоставление доступа к службе "Конфигурация приложений" с помощью управляемого удостоверения;
  • настройка приложения на использование управляемого удостоверения при подключении к службе "Конфигурация приложений".

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

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

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

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

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

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

  2. Прокрутите вниз до группы параметров в левой панели и выберите Удостоверение.

  3. На вкладке Назначено системой для параметра Состояние установите значение Вкл. и выберите Сохранить.

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

    Screenshot of how to add a managed identity in App Service.

Предоставление доступа к службе "Конфигурация приложений"

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

  1. В портал Azure выберите свое хранилище Конфигурация приложений.

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

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

    Screenshot that shows the Access control (IAM) page with Add role assignment menu open.

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

  4. На вкладке Роль выберите роль Читатель данных Конфигурации приложений, а затем выберите Далее.

    Screenshot that shows the Add role assignment page with Role tab selected.

  5. На вкладке Участники выберите Управляемое удостоверение и нажмите Выбор участников.

    Screenshot that shows the Add role assignment page with Members tab selected.

  6. Выберите подписку Azure, для управляемого удостоверения выберите Служба приложений, а затем выберите имя Службы приложений.

    Screenshot that shows the select managed identities page.

  7. Чтобы назначить роль, на вкладке Проверка и назначение выберите Проверка и назначение.

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

  1. Добавьте ссылку на пакет Azure.Identity:

    dotnet add package Azure.Identity
    
  2. Найдите конечную точку в хранилище службы "Конфигурация приложений". Этот URL-адрес указан на вкладке Ключи доступа в хранилище на портале Azure.

  3. Откройте файл appsettings.json и добавьте следующий сценарий: Замените заполнитель <service_endpoint> вместе со скобками на URL-адрес вашего хранилища Конфигураций приложений.

    "AppConfig": {
        "Endpoint": "<service_endpoint>"
    }
    
  4. Откройте файл Program.cs и добавьте ссылку на пространства имен Azure.Identity и Microsoft.Azure.Services.AppAuthentication:

    using Azure.Identity;
    
  5. Чтобы получить доступ к значениям, хранящимся в Конфигурация приложений, обновите Builder конфигурацию, чтобы использовать AddAzureAppConfiguration() метод.

    var builder = WebApplication.CreateBuilder(args);
    
    builder.Configuration.AddAzureAppConfiguration(options =>
        options.Connect(
            new Uri(builder.Configuration["AppConfig:Endpoint"]),
            new ManagedIdentityCredential()));
    

    Примечание.

    В случае использования управляемого удостоверения, назначаемого пользователем, при создании ManagedIdentityCredential обязательно укажите идентификатор clientId.

    new ManagedIdentityCredential("<your_clientId>")
    

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

  1. Найдите конечную точку в хранилище службы "Конфигурация приложений". Этот URL-адрес указан на вкладке Обзор в хранилище на портале Azure.

  2. Откройте bootstrap.properties, удалите свойство строки подключения и замените его конечной точкой для назначенного системой удостоверения:

spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>

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

spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>
spring.cloud.azure.credential.managed-identity-enabled= true
spring.cloud.azure.credential.client-id= <client_id>

Примечание.

Дополнительные сведения см. в статье Spring Cloud Для проверки подлинности Azure.

Развертывание приложения

При использовании управляемых удостоверений необходимо развернуть приложение в службе Azure. Управляемые удостоверения невозможно использовать для проверки подлинности локально выполняемых приложений. Чтобы развернуть приложение .NET Core, созданное в кратком руководстве Создание приложения ASP.NET Core с помощью службы "Конфигурация приложений Azure" и измененное для использования управляемых удостоверений, следуйте указаниям в разделе Публикация веб-приложения.

Для использования управляемых удостоверений требуется развернуть приложение в службе Azure. Управляемые удостоверения невозможно использовать для проверки подлинности локально выполняемых приложений. Чтобы развернуть приложение Spring, созданное в кратком руководстве Создание приложения Java Spring с помощью службы "Конфигурация приложений Azure" и измененное для использования управляемых удостоверений, следуйте указаниям в разделе Публикация веб-приложения.

Кроме службы приложений, многие другие службы Azure поддерживают управляемые удостоверения. Дополнительные сведения см. в статье Службы, поддерживающие управляемые удостоверения для ресурсов Azure.

Очистка ресурсов

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

Внимание

Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не те ресурсы или группу ресурсов. Если ресурсы для работы с этой статьей созданы в группе ресурсов, которая содержит другие нужные ресурсы, удалите каждый ресурс отдельно в соответствующей области ресурса, чтобы не удалять группу ресурсов.

  1. Войдите на портал Azure и выберитеГруппы ресурсов.
  2. Введите имя группы ресурсов в поле Фильтровать по имени.
  3. В списке результатов выберите имя группы ресурсов, чтобы просмотреть общие сведения.
  4. Выберите команду Удалить группу ресурсов.
  5. Подтвердите операцию удаления группы ресурсов. Введите имя группы ресурсов, которую необходимо удалить, и нажмите Удалить.

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

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

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