Узнайте, как подключить приложение ASP.NET Core, работающее в службе приложение Azure, к Конфигурация приложений Azure с помощью одного из следующих методов:
- Назначаемое системой управляемое удостоверение (SMI)
- Назначаемое пользователем управляемое удостоверение (UMI)
- Субъект-служба
- Строка подключения
В этом руководстве используйте Azure CLI для выполнения следующих задач:
- Настройка ресурсов Azure
- Создание подключения между веб-приложением и Конфигурация приложений
- Создание и развертывание приложения в службе приложение Azure
Предварительные условия
Вход в Azure
Запустите az login
Azure CLI, чтобы войти в Azure.
Настройка ресурсов Azure
Начните с создания ресурсов Azure.
Клонируйте следующий пример репозитория:
git clone https://github.com/Azure-Samples/serviceconnector-webapp-appconfig-dotnet.git
Развертывание веб-приложения в Azure
Выполните следующие действия, чтобы создать Служба приложений и развернуть пример приложения. Убедитесь, что у вас есть роль "Контрибутор подписки" или "Владелец".
Создайте службу приложений и разверните пример приложения, использующего управляемое удостоверение, назначаемое системой, для взаимодействия с конфигурацией приложения.
# Change directory to the SMI sample
cd serviceconnector-webapp-appconfig-dotnet\system-managed-identity
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-smi'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
Параметр |
Описание |
Пример |
Расположение |
Выберите ближайшее к вам расположение. Используйте az account list-locations --output table для вывода списка расположений. |
eastus |
Имя группы ресурсов |
Вы будете использовать эту группу ресурсов для упорядочивания всех ресурсов Azure, необходимых для выполнения этого руководства. |
service-connector-tutorial-rg |
Имя службы приложений |
Имя службы приложений используется в качестве имени ресурса в Azure и для формирования полного доменного имени приложения в виде конечной точки https://<app-service-name>.azurewebsites.com сервера. Это имя должно быть уникальным для всех Azure, и допускаются только следующие символы: A , -, Z , 0 , -, 9 и - . |
webapp-appconfig-smi |
Создайте службу приложений и разверните пример приложения, использующего управляемое удостоверение, назначаемое пользователем, для взаимодействия с Конфигурацией приложения.
# Change directory to the UMI sample
cd serviceconnector-webapp-appconfig-dotnet\user-assigned-managed-identity
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-umi'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
Параметр |
Описание |
Пример |
Расположение |
Выберите ближайшее к вам расположение. Используйте az account list-locations --output table для вывода списка расположений. |
eastus |
Имя группы ресурсов |
Вы будете использовать эту группу ресурсов для упорядочивания всех ресурсов Azure, необходимых для выполнения этого руководства. |
service-connector-tutorial-rg |
Имя службы приложений |
Имя службы приложений используется в качестве имени ресурса в Azure и для формирования полного доменного имени приложения в виде конечной точки https://<app-service-name>.azurewebsites.com сервера. Это имя должно быть уникальным для всех Azure, и единственными допустимыми символами являются A , -, Z , 0 , -, 9 и - . |
webapp-appconfig-umi |
Создайте управляемое удостоверение, назначаемое пользователем. Сохраните выходные данные во временной блокноте.
az identity create --resource-group $RESOURCE_GROUP_NAME -n "myIdentity"
Создайте службу приложений и разверните пример приложения, использующего субъект-службу для взаимодействия с конфигурацией приложения.
# Change directory to the service principal sample
cd serviceconnector-webapp-appconfig-dotnet\service-principal
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-sp'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
Параметр |
Описание |
Пример |
Расположение |
Выберите ближайшее к вам расположение. Используйте az account list-locations --output table для вывода списка расположений. |
eastus |
Имя группы ресурсов |
Вы будете использовать эту группу ресурсов для упорядочивания всех ресурсов Azure, необходимых для выполнения этого руководства. |
service-connector-tutorial-rg |
Имя службы приложений |
Имя службы приложений используется в качестве имени ресурса в Azure и для формирования полного доменного имени приложения в виде конечной точки https://<app-service-name>.azurewebsites.com сервера. Это имя должно быть уникальным для всех экземпляров Azure, и допустимы только символы: A -Z , 0 -9 и - . |
webapp-appconfig-sp |
Создайте учетную запись службы и обязательно замените yourSubscriptionID
на ваш фактический идентификатор подписки. Сохраните выходные данные во временной блокноте.
az ad sp create-for-rbac --name myServicePrincipal --role Contributor --scopes /subscriptions/{yourSubscriptionID}/resourceGroups/$RESOURCE_GROUP_NAME
Предупреждение
Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, требует очень высокого уровня доверия к приложению и несет риски, которые отсутствуют в других потоках. Следует использовать этот механизм, только если другие, более безопасные механизмы, такие как управляемые идентификаторы, недоступны.
Создайте службу приложений и разверните пример приложения, использующего строку подключения для взаимодействия с App Config.
# Change directory to the service principal sample
cd serviceconnector-webapp-appconfig-dotnet\connection-string
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-cs'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
Параметр |
Описание |
Пример |
Расположение |
Выберите ближайшее к вам расположение. Используйте az account list-locations --output table для вывода списка расположений. |
eastus |
Имя группы ресурсов |
Вы будете использовать эту группу ресурсов для упорядочивания всех ресурсов Azure, необходимых для выполнения этого руководства. |
service-connector-tutorial-rg |
Имя службы приложений |
Имя службы приложений используется в качестве имени ресурса в Azure и для формирования полного доменного имени приложения в виде конечной точки https://<app-service-name>.azurewebsites.com сервера. Это имя должно быть уникальным для всех Azure, и только допустимые символы: A , -, Z , 0 , -, 9 и - . |
webapp-appconfig-cs |
Создание хранилища для конфигурации приложений в Azure
APP_CONFIG_NAME='my-app-config'
az appconfig create -g $RESOURCE_GROUP_NAME -n $APP_CONFIG_NAME --sku Free -l eastus
Импортируйте файл конфигурации теста в Конфигурация приложений Azure.
Импортируйте файл конфигурации теста в Службу конфигурации приложений Azure с помощью управляемого удостоверения, назначенного системой.
cd в папку ServiceConnectorSample
Импортируйте файл конфигурации теста ./sampleconfigs.json в хранилище Конфигурация приложений. Если вы используете Cloud Shell, перед выполнением команды отправьте sampleconfigs.json .
az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Импортируйте файл конфигурации теста в Конфигурацию приложений Azure с помощью назначаемого пользователем управляемого удостоверения.
Cd в папку ServiceConnectorSample
Импортируйте файл конфигурации теста ./sampleconfigs.json в хранилище Конфигурация приложений. Если вы используете Cloud Shell, перед выполнением команды отправьте sampleconfigs.json .
az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Импортируйте файл конфигурации теста в Конфигурацию приложений Azure с помощью сервисного принципала.
cd в папку ServiceConnectorSample
Импортируйте файл конфигурации теста ./sampleconfigs.json в хранилище Конфигурация приложений. Если вы используете Cloud Shell, перед выполнением команды отправьте sampleconfigs.json .
az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Предупреждение
Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, требует очень высокого уровня доверия к приложению и несет риски, которые отсутствуют в других потоках. Этот поток следует использовать только в том случае, если другие более безопасные потоки, такие как управляемые удостоверения, не являются жизнеспособными.
Импортируйте тестовый файл конфигурации в Azure App Configuration с помощью строки подключения.
Команда Cd для перехода в папку ServiceConnectorSample
Импортируйте файл конфигурации теста ./sampleconfigs.json в хранилище Конфигурация приложений. Если вы используете Cloud Shell, перед выполнением команды отправьте sampleconfigs.json .
az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Подключение веб-приложения к конфигурации приложений
Создайте подключение между веб-приложением и хранилищем Конфигурация приложений.
Создайте подключение между вашим веб-приложением и вашим хранилищем конфигурации приложений с помощью аутентификации управляемого удостоверения, назначенного системой. Это подключение выполняется через коннектор службы.
az webapp connection create appconfig -g $RESOURCE_GROUP_NAME -n $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_smi" --system-identity
system-identity
относится к типу проверки подлинности "управляемое удостоверение" (SMI), назначаемого системой. Соединитель служб также поддерживает следующую проверку подлинности: назначаемое пользователем управляемое удостоверение (UMI), строка подключения (секрет) и учетная запись службы.
Создайте подключение между вашим веб-приложением и хранилищем конфигурации приложений с использованием проверки подлинности управляемого удостоверения, назначенного пользователем. Это подключение выполняется через Service Connector.
az webapp connection create appconfig -g $RESOURCE_GROUP_NAME -n $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_umi" --user-identity client-id=<myIdentityClientId> subs-id=<myTestSubsId>
user-identity
ссылается на тип проверки подлинности управляемого удостоверения, назначаемого пользователем. Соединитель служб также поддерживает следующие методы проверки подлинности: управляемое системой удостоверение, строка подключения (секрет) и сервисный принципал.
Существует два способа найти client-id
:
- В azure CLI введите
az identity show -n "myIdentity" -g $RESOURCE_GROUP_NAME --query 'clientId'
.
- На портале Azure откройте управляемое удостоверение, созданное ранее, и в Обзор получите значение в разделе идентификатор клиента.
Создайте подключение между вашим веб-приложением и хранилищем конфигураций приложений, используя сервисного принципала. Это делается через сервисный коннектор.
az webapp connection create appconfig -g $RESOURCE_GROUP_NAME -n $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_sp" --service-principal client-id=<mySPClientId> secret=<mySPSecret>
service-principal
относится к типу проверки подлинности учетной записи службы. Соединитель служб также поддерживает следующие проверки подлинности: назначаемое системой управляемое удостоверение (UMI), назначаемое пользователем управляемое удостоверение (UMI) и строка подключения (секрет).
Создайте подключение между вашим веб-приложением и хранилищем конфигураций приложений с помощью строки подключения. Это подключение выполняется через Service Connector.
az webapp connection create appconfig -g $RESOURCE_GROUP_NAME -n $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_cs" --secret
secret
ссылается на тип аутентификации для строки подключения. Коннектор службы также поддерживает следующие типы аутентификации: управляемое удостоверение, назначаемое системой, управляемое удостоверение, назначаемое пользователем, и сервисный принципал.
Проверка подключения
- Чтобы проверить, работает ли подключение, перейдите к веб-приложению
https://<myWebAppName>.azurewebsites.net/
из браузера. После того как веб-сайт будет запущен, вы увидите, что отобразится сообщение "Hello. Ваше веб-приложение Azure теперь подключено к Конфигурации приложений с помощью ServiceConnector.
Принцип работы
Ниже указано, что служебный соединитель обрабатывает в фоновом режиме для каждого типа проверки подлинности.
Подключающий модуль берет на себя настройку подключения для вас.
- Настройте веб-приложение
AZURE_APPCONFIGURATION_ENDPOINT
, чтобы разрешить приложению доступ к нему и получить конечную точку конфигурации приложения. Доступ к примеру кода.
- Активируйте системно назначенную управляемую проверку подлинности веб-приложения и предоставьте Конфигурации приложений роль Чтение данных, чтобы позволить приложению проходить проверку подлинности в Конфигурации приложений с помощью DefaultAzureCredential из Azure.Identity. Доступ к примеру кода.
Соединитель службы управляет конфигурацией подключения для вас:
- Настройте веб-приложение
AZURE_APPCONFIGURATION_ENDPOINT
, AZURE_APPCONFIGURATION_CLIENTID
чтобы разрешить приложению доступ к нему и получить конечную точку конфигурации приложения в коде;
- Активируйте управляемую пользователем проверку подлинности веб-приложения и предоставьте Конфигурация приложений роль средства чтения данных, чтобы позволить приложению проходить проверку подлинности в Конфигурация приложений с помощью DefaultAzureCredential из Azure.Identity. Доступ к примеру кода.
Коннектор службы управляет конфигурацией подключения для вас.
- Настройте веб-приложение
AZURE_APPCONFIGURATION_ENDPOINT
, чтобы разрешить приложению доступ к нему и получить конечную точку Конфигурации приложений. Доступ к примеру кода.
- сохраните учетные данные учетной записи в WebApp AppSettings
AZURE_APPCONFIGURATION_CLIENTID
.
AZURE_APPCONFIGURATION_TENANTID
и AZURE_APPCONFIGURATION_CLIENTSECRET
предоставьте роль "Читатель данных конфигурации приложения" для служебной учётной записи, чтобы приложение могло аутентифицироваться в конфигурации приложения в коде с помощью ClientSecretCredential
из Azure.Identity.
Служба Connector управляет для вас настройками подключения.
- Настройте веб-приложение
AZURE_APPCONFIGURATION_CONNECTIONSTRING
, чтобы приложение имело к нему доступ и получить строку подключения конфигурации приложения. Доступ к примеру кода.
- Активируйте управляемую системой проверку подлинности веб-приложения и предоставьте Конфигурация приложений роль чтения данных, чтобы позволить приложению проходить проверку подлинности в Конфигурация приложений с помощью DefaultAzureCredential из Azure.Identity. Доступ к примеру кода.
Для получения дополнительной информации см. внутренние компоненты Соединителя служб.
Тест (необязательно)
При необходимости выполните следующие тесты:
Обновите значение ключа SampleApplication:Settings:Messages
в хранилище Конфигурация приложений.
az appconfig kv set -n <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
Перейдите к веб-приложению Azure, перейдя на https://<myWebAppName>.azurewebsites.net/
страницу и обновив страницу. Вы увидите, что сообщение изменилось на "привет".
Очистка ресурсов
После завершения, если вы больше не собираетесь использовать эти ресурсы Azure, удалите их, выполнив az group delete
команду. Эта команда удаляет группу ресурсов и все ресурсы в ней.
az group delete -n <myResourceGroupName> --yes
Следующие шаги
Чтобы узнать больше о Service Connector, следуйте приведенным ниже учебникам.