Узнайте, как подключить приложение ASP.NET Core, работающее в службе приложение Azure, к Конфигурация приложений Azure с помощью одного из следующих методов:
- Назначаемое системой управляемое удостоверение (SMI)
- Назначаемое пользователем управляемое удостоверение (UMI)
- Service principal
- Connection string
В этом руководстве используйте Azure CLI для выполнения следующих задач:
- Настройка ресурсов Azure
- Создание подключения между веб-приложением и Конфигурация приложений
- Создание и развертывание приложения в службе приложение Azure
Prerequisites
Вход в Azure
Запустите az login Azure CLI, чтобы войти в Azure.
Настройка ресурсов Azure
Начните с создания ресурсов Azure.
Клонируйте следующий пример репозитория:
git clone https://github.com/Azure-Samples/serviceconnector-webapp-appconfig-dotnet.git
Разверните веб-приложение в Azure.
Выполните следующие действия, чтобы создать Служба приложений и развернуть пример приложения. Make sure you have the subscription Contributor or Owner role.
Создайте службу приложений и разверните пример приложения, использующего управляемое удостоверение, назначаемое системой, для взаимодействия с конфигурацией приложения.
# 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
| Parameter |
Description |
Example |
| Location |
Выберите ближайшее к вам расположение. Используйте az account list-locations --output table для вывода списка расположений. |
eastus |
| Имя группы ресурсов |
Используйте эту группу ресурсов, чтобы упорядочить все ресурсы Azure, необходимые для выполнения этого руководства. |
service-connector-tutorial-rg |
| Имя службы приложений |
Имя службы приложений используется в качестве имени ресурса в Azure и для формирования полного доменного имени приложения в виде конечной точки сервера. Допустимые символы: A-Z, 0-9 и -. Azure добавляет случайную строку, чтобы сделать конечную точку сервера уникальной во всех Azure. |
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
| Parameter |
Description |
Example |
| Location |
Выберите ближайшее к вам расположение. Используйте az account list-locations --output table для вывода списка расположений. |
eastus |
| Имя группы ресурсов |
Используйте эту группу ресурсов, чтобы упорядочить все ресурсы Azure, необходимые для выполнения этого руководства. |
service-connector-tutorial-rg |
| Имя службы приложений |
Имя службы приложений используется в качестве имени ресурса в Azure и для формирования полного доменного имени приложения в виде конечной точки сервера. Допустимые символы: A-Z, 0-9 и -. Azure добавляет случайную строку, чтобы сделать конечную точку сервера уникальной во всех Azure. |
webapp-appconfig-umi |
Создайте управляемое удостоверение, назначаемое пользователем. Сохраните выходные данные во временной блокноте.
az identity create --resource-group $RESOURCE_GROUP_NAME --name "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
| Parameter |
Description |
Example |
| Location |
Выберите ближайшее к вам расположение. Используйте az account list-locations --output table для вывода списка расположений. |
eastus |
| Имя группы ресурсов |
Используйте эту группу ресурсов, чтобы упорядочить все ресурсы Azure, необходимые для выполнения этого руководства. |
service-connector-tutorial-rg |
| Имя службы приложений |
Имя службы приложений используется в качестве имени ресурса в Azure и для формирования полного доменного имени приложения в виде конечной точки сервера. Допустимые символы: A-Z, 0-9 и -. Azure добавляет случайную строку, чтобы сделать конечную точку сервера уникальной во всех Azure. |
webapp-appconfig-sp |
Создайте служебный принципал. Обязательно замените yourSubscriptionID на фактический идентификатор подписки. Сохраните выходные данные во временной блокноте.
az ad sp create-for-rbac --name myServicePrincipal --role Contributor --scopes /subscriptions/{yourSubscriptionID}/resourceGroups/$RESOURCE_GROUP_NAME
Warning
Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, требует очень высокого уровня доверия к приложению. Он несет риски, которые не присутствуют в других потоках. Следует использовать этот механизм, только если другие, более безопасные механизмы, такие как управляемые идентификаторы, недоступны.
Создайте службу приложений и разверните пример приложения, использующего строку подключения для взаимодействия с 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
| Parameter |
Description |
Example |
| Location |
Выберите ближайшее к вам расположение. Используйте az account list-locations --output table для вывода списка расположений. |
eastus |
| Имя группы ресурсов |
Используйте эту группу ресурсов, чтобы упорядочить все ресурсы Azure, необходимые для выполнения этого руководства. |
service-connector-tutorial-rg |
| Имя службы приложений |
Имя службы приложений используется в качестве имени ресурса в Azure и для формирования полного доменного имени приложения в виде конечной точки сервера. Допустимые символы: A-Z, 0-9 и -. Azure добавляет случайную строку, чтобы сделать конечную точку сервера уникальной во всех Azure. |
webapp-appconfig-cs |
Создайте хранилище конфигурации приложений Azure.
APP_CONFIG_NAME='my-app-config'
az appconfig create --resource-group $RESOURCE_GROUP_NAME --name $APP_CONFIG_NAME --sku Free --location eastus
Импортируйте файл конфигурации теста в Конфигурация приложений Azure.
Импортируйте файл конфигурации теста в Службу конфигурации приложений Azure с помощью управляемого удостоверения, назначенного системой.
Измените каталоги в папку ServiceConnectorSample.
Import the ./sampleconfigs.json test configuration file into the App Configuration store. If you're using Cloud Shell, upload sampleconfigs.json before you run the command.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Импортируйте файл конфигурации теста в Конфигурацию приложений Azure с помощью назначаемого пользователем управляемого удостоверения.
Измените каталоги в папку ServiceConnectorSample.
Import the ./sampleconfigs.json test configuration file into the App Configuration store. If you're using Cloud Shell, upload sampleconfigs.json before you run the command.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Импортируйте файл конфигурации теста в Конфигурацию приложений Azure с помощью сервисного принципала.
Измените каталоги в папку ServiceConnectorSample.
Import the ./sampleconfigs.json test configuration file into the App Configuration store. If you're using Cloud Shell, upload sampleconfigs.json before you run the command.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Warning
Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, требует очень высокого уровня доверия к приложению. Он несет риски, которые не присутствуют в других потоках. Следует использовать этот механизм, только если другие, более безопасные механизмы, такие как управляемые идентификаторы, недоступны.
Импортируйте тестовый файл конфигурации в Azure App Configuration с помощью строки подключения.
Измените каталоги в папку ServiceConnectorSample.
Import the ./sampleconfigs.json test configuration file into the App Configuration store. If you're using Cloud Shell, upload sampleconfigs.json before you run the command.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Подключение веб-приложения к конфигурации приложений
Создайте подключение между веб-приложением и хранилищем Конфигурация приложений.
Создайте подключение между вашим веб-приложением и вашим хранилищем конфигурации приложений с помощью аутентификации управляемого удостоверения, назначенного системой. Это подключение выполняется через коннектор службы.
az webapp connection create appconfig --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_smi" --system-identity
system-identity относится к типу проверки подлинности "управляемое удостоверение" (SMI), назначаемого системой. Соединитель служб также поддерживает следующие виды проверки подлинности: назначаемое пользователем управляемое удостоверение (UMI), строка подключения (секрет) и принципал службы.
Создайте подключение между вашим веб-приложением и хранилищем конфигурации приложений с использованием проверки подлинности управляемого удостоверения, назначенного пользователем. Это подключение выполняется через коннектор службы.
az webapp connection create appconfig --resource-group $RESOURCE_GROUP_NAME --name $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 --name "myIdentity" --resource-group $RESOURCE_GROUP_NAME --query 'clientId'.
- In the Azure portal, open the Managed Identity that was created earlier and in Overview, get the value under Client ID.
Создайте подключение между вашим веб-приложением и хранилищем конфигураций приложений, используя сервисного принципала. Эта конфигурация выполняется через сервисный коннектор.
az webapp connection create appconfig --resource-group $RESOURCE_GROUP_NAME --name $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) и строка подключения (секрет).
Создайте подключение между вашим веб-приложением и хранилищем конфигураций приложений с помощью строки подключения. Это подключение выполняется через коннектор службы.
az webapp connection create appconfig --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_cs" --secret
secret ссылается на тип аутентификации для строки подключения. Коннектор службы также поддерживает следующие типы аутентификации: управляемое удостоверение, назначаемое системой, управляемое удостоверение, назначаемое пользователем, и сервисный принципал.
Проверка подключения
Чтобы проверить, работает ли подключение, перейдите к веб-приложению. Самый простой способ добраться до веб-приложения — открыть его на портале Azure. После того как веб-сайт будет запущен, вы увидите сообщение: Здравствуйте. Ваш веб-приложение Azure теперь подключено к конфигурации приложений с помощью ServiceConnector. After the website is up, you see it display: Hello. Your Azure WebApp is connected to App Configuration by ServiceConnector now.
Принцип работы
Узнайте, что Service Connector управляет в фоновом режиме для каждого типа проверки подлинности.
Подключающий модуль берет на себя настройку подключения для вас.
- Настройте веб-приложение
AZURE_APPCONFIGURATION_ENDPOINT, чтобы разрешить приложению доступ к нему и получить конечную точку конфигурации приложения. Access sample code.
- Активируйте системно назначенную управляемую проверку подлинности веб-приложения и предоставьте Конфигурации приложений роль Чтение данных, чтобы позволить приложению проходить проверку подлинности в Конфигурации приложений с помощью DefaultAzureCredential из Azure.Identity. Access sample code.
Подключающий модуль берет на себя настройку подключения для вас.
- Set up the web app's
AZURE_APPCONFIGURATION_ENDPOINT, AZURE_APPCONFIGURATION_CLIENTID to let the application access it and get app configuration endpoint in code;
- Активируйте управляемую пользователем проверку подлинности веб-приложения и предоставьте Конфигурация приложений роль средства чтения данных, чтобы позволить приложению проходить проверку подлинности в Конфигурация приложений с помощью DefaultAzureCredential из Azure.Identity. Access sample code.
Подключающий модуль берет на себя настройку подключения для вас.
- Настройте веб-приложение
AZURE_APPCONFIGURATION_ENDPOINT, чтобы разрешить приложению доступ к нему и получить конечную точку конфигурации приложения. Access sample code.
- Сохраните учетные данные принципала службы в настройках приложения WebApp
AZURE_APPCONFIGURATION_CLIENTID.
AZURE_APPCONFIGURATION_TENANTID, AZURE_APPCONFIGURATION_CLIENTSECRET and grant App Configuration Data Reader role to the service principal, so the application could be authenticated to the App Configuration in code, by using ClientSecretCredential from Azure.Identity.
Подключающий модуль берет на себя настройку подключения для вас.
- Настройте веб-приложение
AZURE_APPCONFIGURATION_CONNECTIONSTRING, чтобы приложение имело к нему доступ и получить строку подключения конфигурации приложения. Access sample code.
- Активируйте системно назначенную управляемую проверку подлинности веб-приложения и предоставьте Конфигурации приложений роль Чтение данных, чтобы позволить приложению проходить проверку подлинности в Конфигурации приложений с помощью DefaultAzureCredential из Azure.Identity. Access sample code.
Дополнительные сведения см. во внутренних компонентах соединителя служб.
Test (optional)
При необходимости выполните следующие тесты:
Обновите значение ключа SampleApplication:Settings:Messages в хранилище Конфигурация приложений.
az appconfig kv set --name <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
Перейдите к веб-приложению Azure, как описано ранее, и обновите страницу. You see that the message is updated to: hello.
Очистка ресурсов
После завершения работы, если вы больше не собираетесь использовать эти ресурсы Azure, удалите их, выполнив az group delete команду. Эта команда удаляет группу ресурсов и все ресурсы в ней.
az group delete --name <myResourceGroupName> --yes
Next step