Использование управляемых удостоверений для получения доступа к службе "Конфигурация приложений"
Управляемые удостоверения 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. Создайте хранилище.
- Пакет SDK для .NET версии 6.0 или более поздней версии.
- Учетная запись Azure с активной подпиской. Создайте ее бесплатно.
- Хранилище Конфигурация приложений Azure. Создайте хранилище.
- Поддерживаемый комплект разработчика Java (JDK) версии 11.
- Apache Maven версии 3.0 или более поздней.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Добавление управляемого удостоверения
Чтобы настроить управляемое удостоверение на портале, сначала необходимо создать приложение, а затем активировать соответствующую функцию.
Вы можете получить доступ к ресурсу служб приложений на портале Azure. Если у вас нет ресурса служб приложений, создайте его.
Прокрутите вниз до группы параметров в левой панели и выберите Удостоверение.
На вкладке Назначено системой для параметра Состояние установите значение Вкл. и выберите Сохранить.
При появлении запроса ответьте Да, чтобы включить управляемое удостоверение, назначаемое системой.
Предоставление доступа к службе "Конфигурация приложений"
Следующие шаги показывают, как назначить Службе приложений роль читателя данных Конфигурации приложений. Подробные инструкции см. в статье Назначение ролей Azure с помощью портала Microsoft Azure.
В портал Azure выберите свое хранилище Конфигурация приложений.
Выберите Управление доступом (IAM).
Выберите Добавить>Добавить назначение ролей.
Если у вас нет прав назначать роли, функция Добавление назначения ролей будет неактивна. Дополнительные сведения см. в статье Встроенные роли Azure.
На вкладке Роль выберите роль Читатель данных Конфигурации приложений, а затем выберите Далее.
На вкладке Участники выберите Управляемое удостоверение и нажмите Выбор участников.
Выберите подписку Azure, для управляемого удостоверения выберите Служба приложений, а затем выберите имя Службы приложений.
Чтобы назначить роль, на вкладке Проверка и назначение выберите Проверка и назначение.
Использование управляемого удостоверения
Добавьте ссылку на пакет
Azure.Identity
:dotnet add package Azure.Identity
Найдите конечную точку в хранилище службы "Конфигурация приложений". Этот URL-адрес указан на вкладке Ключи доступа в хранилище на портале Azure.
Откройте файл appsettings.json и добавьте следующий сценарий: Замените заполнитель <service_endpoint> вместе со скобками на URL-адрес вашего хранилища Конфигураций приложений.
"AppConfig": { "Endpoint": "<service_endpoint>" }
Откройте файл Program.cs и добавьте ссылку на
Azure.Identity
пространство имен:using Azure.Identity;
Чтобы получить доступ к значениям, хранящимся в Конфигурация приложений, обновите
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
, даже если определено только одно управляемое удостоверение, назначаемое пользователем, а управляемое удостоверение, назначаемое системой, отсутствует.
Найдите конечную точку в хранилище службы "Конфигурация приложений". Этот URL-адрес указан на вкладке Обзор в хранилище на портале Azure.
Откройте
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.
Очистка ресурсов
Если вы не планируете в дальнейшем использовать ресурсы, созданные при работе с этой статьей, удалите созданную группу ресурсов, чтобы избежать расходов.
Внимание
Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не те ресурсы или группу ресурсов. Если ресурсы для работы с этой статьей созданы в группе ресурсов, которая содержит другие нужные ресурсы, удалите каждый ресурс отдельно в соответствующей области ресурса, чтобы не удалять группу ресурсов.
- Войдите на портал Azure и выберитеГруппы ресурсов.
- Введите имя группы ресурсов в поле Фильтровать по имени.
- В списке результатов выберите имя группы ресурсов, чтобы просмотреть общие сведения.
- Выберите команду Удалить группу ресурсов.
- Подтвердите операцию удаления группы ресурсов. Введите имя группы ресурсов, которую необходимо удалить, и нажмите Удалить.
Через некоторое время группа ресурсов и все ее ресурсы будут удалены.
Следующие шаги
С помощью инструкций из этого руководства вы добавили управляемое удостоверение службы Azure, чтобы упростить доступ к службе "Конфигурация приложений" и улучшить управление учетными данными для вашего приложения. Чтобы узнать больше об использовании службы "Конфигурация приложений", перейдите к примерам скриптов Azure CLI.