Dowiedz się, jak połączyć aplikację ASP.NET Core działającą w usłudze Azure App Service z usługą Azure App Configuration przy użyciu jednej z następujących metod:
- Tożsamość zarządzana przypisana przez system (SMI)
- Tożsamość zarządzana przypisana przez użytkownika (UMI)
- Główna usługa
- Łańcuch połączenia
W tym samouczku użyj interfejsu wiersza polecenia platformy Azure, aby wykonać następujące zadania:
- Konfigurowanie zasobów platformy Azure
- Tworzenie połączenia między aplikacją internetową a usługą App Configuration
- Kompilowanie i wdrażanie aplikacji w usłudze Azure App Service
Prerequisites
Zaloguj się do Azure
Uruchom polecenie az login w interfejsie wiersza polecenia platformy Azure, aby zalogować się na platformie Azure.
Konfigurowanie zasobów platformy Azure
Zacznij od utworzenia zasobów platformy Azure.
Sklonuj następujące przykładowe repozytorium:
git clone https://github.com/Azure-Samples/serviceconnector-webapp-appconfig-dotnet.git
Wdróż aplikację internetową na platformie Azure.
Wykonaj następujące kroki, aby utworzyć usługę App Service i wdrożyć przykładową aplikację. Upewnij się, że masz rolę subskrypcji Współautor lub Właściciel.
Utwórz usługę app service i wdróż przykładową aplikację, która używa przypisanej przez system tożsamości zarządzanej do interakcji z konfiguracją aplikacji.
# 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 |
Wybierz lokalizację w pobliżu. Użyj polecenia az account list-locations --output table , aby wyświetlić listę lokalizacji. |
eastus |
| Nazwa grupy zasobów |
Użyj tej grupy zasobów, aby zorganizować wszystkie zasoby platformy Azure potrzebne do ukończenia tego samouczka. |
service-connector-tutorial-rg |
| Nazwa usługi App Service |
Nazwa usługi app Service jest używana jako nazwa zasobu na platformie Azure i do utworzenia w pełni kwalifikowanej nazwy domeny dla aplikacji w postaci punktu końcowego serwera. Dozwolone znaki to A-Z, 0-9i .- Platforma Azure dołącza losowy ciąg, aby punkt końcowy serwera był unikatowy dla całej platformy Azure. |
webapp-appconfig-smi |
Utwórz usługę app service i wdróż przykładową aplikację, która używa tożsamości zarządzanej przypisanej przez użytkownika do interakcji z konfiguracją aplikacji.
# 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 |
Wybierz lokalizację w pobliżu. Użyj polecenia az account list-locations --output table , aby wyświetlić listę lokalizacji. |
eastus |
| Nazwa grupy zasobów |
Użyj tej grupy zasobów, aby zorganizować wszystkie zasoby platformy Azure potrzebne do ukończenia tego samouczka. |
service-connector-tutorial-rg |
| Nazwa usługi App Service |
Nazwa usługi app Service jest używana jako nazwa zasobu na platformie Azure i do utworzenia w pełni kwalifikowanej nazwy domeny dla aplikacji w postaci punktu końcowego serwera. Dozwolone znaki to A-Z, 0-9i .- Platforma Azure dołącza losowy ciąg, aby punkt końcowy serwera był unikatowy dla całej platformy Azure. |
webapp-appconfig-umi |
Utwórz tożsamość zarządzaną przypisaną przez użytkownika. Zapisz dane wyjściowe w tymczasowym notatniku.
az identity create --resource-group $RESOURCE_GROUP_NAME --name "myIdentity"
Utwórz usługę aplikacyjną i wdróż przykładową aplikację, która używa głównej jednostki usługi do interakcji z App Config.
# 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 |
Wybierz lokalizację w pobliżu. Użyj polecenia az account list-locations --output table , aby wyświetlić listę lokalizacji. |
eastus |
| Nazwa grupy zasobów |
Użyj tej grupy zasobów, aby zorganizować wszystkie zasoby platformy Azure potrzebne do ukończenia tego samouczka. |
service-connector-tutorial-rg |
| Nazwa usługi App Service |
Nazwa usługi app Service jest używana jako nazwa zasobu na platformie Azure i do utworzenia w pełni kwalifikowanej nazwy domeny dla aplikacji w postaci punktu końcowego serwera. Dozwolone znaki to A-Z, 0-9i .- Platforma Azure dołącza losowy ciąg, aby punkt końcowy serwera był unikatowy dla całej platformy Azure. |
webapp-appconfig-sp |
Utwórz jednostkę usługi. Pamiętaj, aby zastąpić yourSubscriptionID swoim rzeczywistym identyfikatorem subskrypcji. Zapisz dane wyjściowe w tymczasowym notatniku.
az ad sp create-for-rbac --name myServicePrincipal --role Contributor --scopes /subscriptions/{yourSubscriptionID}/resourceGroups/$RESOURCE_GROUP_NAME
Warning
Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Przepływ uwierzytelniania opisany w tej procedurze wymaga bardzo wysokiego poziomu zaufania w aplikacji. Niesie ze sobą ryzyko, które nie są obecne w innych przepływach. Tego przepływu należy używać tylko wtedy, gdy inne bezpieczniejsze przepływy, takie jak tożsamości zarządzane, nie są opłacalne.
Utwórz usługę app service i wdróż przykładową aplikację, która używa parametrów połączenia do interakcji z aplikacją 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 |
Wybierz lokalizację w pobliżu. Użyj polecenia az account list-locations --output table , aby wyświetlić listę lokalizacji. |
eastus |
| Nazwa grupy zasobów |
Użyj tej grupy zasobów, aby zorganizować wszystkie zasoby platformy Azure potrzebne do ukończenia tego samouczka. |
service-connector-tutorial-rg |
| Nazwa usługi App Service |
Nazwa usługi app Service jest używana jako nazwa zasobu na platformie Azure i do utworzenia w pełni kwalifikowanej nazwy domeny dla aplikacji w postaci punktu końcowego serwera. Dozwolone znaki to A-Z, 0-9i .- Platforma Azure dołącza losowy ciąg, aby punkt końcowy serwera był unikatowy dla całej platformy Azure. |
webapp-appconfig-cs |
Utwórz magazyn usługi Azure App Configuration.
APP_CONFIG_NAME='my-app-config'
az appconfig create --resource-group $RESOURCE_GROUP_NAME --name $APP_CONFIG_NAME --sku Free --location eastus
Zaimportuj plik konfiguracji testowej do usługi Azure App Configuration.
Zaimportuj plik konfiguracji testowej do usługi Azure App Configuration przy użyciu przypisanej przez system tożsamości zarządzanej.
Zmień katalogi na folder ServiceConnectorSample.
Zaimportuj plik konfiguracji testu ./sampleconfigs.json do magazynu usługi App Configuration. Jeśli używasz usługi Cloud Shell, przekaż sampleconfigs.json przed uruchomieniem polecenia.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Zaimportuj plik konfiguracji testowej do usługi Azure App Configuration przy użyciu tożsamości zarządzanej przypisanej przez użytkownika.
Zmień katalogi na folder ServiceConnectorSample.
Zaimportuj plik testowej konfiguracji ./sampleconfigs.json do magazynu usługi App Configuration. Jeśli używasz usługi Cloud Shell, przekaż sampleconfigs.json przed uruchomieniem polecenia.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Zaimportuj plik konfiguracji testowej do usługi Azure App Configuration przy użyciu jednostki usługi.
Zmień katalogi na folder ServiceConnectorSample.
Zaimportuj plik konfiguracji testu ./sampleconfigs.json do sklepu App Configuration. Jeśli używasz usługi Cloud Shell, przekaż sampleconfigs.json przed uruchomieniem polecenia.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Warning
Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Przepływ uwierzytelniania opisany w tej procedurze wymaga bardzo wysokiego poziomu zaufania w aplikacji. Niesie ze sobą ryzyko, które nie są obecne w innych przepływach. Tego przepływu należy używać tylko wtedy, gdy inne bezpieczniejsze przepływy, takie jak tożsamości zarządzane, nie są opłacalne.
Zaimportuj plik konfiguracji testowej do usługi Azure App Configuration przy użyciu parametrów połączenia.
Zmień katalogi na folder ServiceConnectorSample.
Zaimportuj plik konfiguracyjny testu ./sampleconfigs.json do usługi App Configuration. Jeśli używasz usługi Cloud Shell, przekaż sampleconfigs.json przed uruchomieniem polecenia.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Łączenie aplikacji internetowej z usługą App Configuration
Utwórz połączenie między swoją aplikacją internetową a sklepem App Configuration.
Utwórz połączenie między aplikacją internetową a magazynem App Configuration, używając uwierzytelniania za pomocą tożsamości zarządzanej przypisanej przez system. To połączenie odbywa się za pośrednictwem łącznika usługi.
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 odnosi się do typu uwierzytelniania tożsamości zarządzanej przypisanej przez system (SMI). Łącznik usługi obsługuje również następujące uwierzytelnianie: tożsamość zarządzana przypisana przez użytkownika (UMI), parametry połączenia (wpis tajny) i jednostka usługi.
Utwórz połączenie między aplikacją internetową a magazynem App Configuration, używając uwierzytelnienia za pomocą tożsamości zarządzanej przez użytkownika. To połączenie odbywa się za pośrednictwem łącznika usługi.
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 odnosi się do typu uwierzytelniania tożsamości zarządzanej przez użytkownika. Łącznik usługi obsługuje również następujące metody uwierzytelniania: systemowa tożsamość zarządzana, łańcuch połączenia (tajny) i główna jednostka usługi.
Istnieją dwa sposoby znajdowania elementu client-id:
- W Azure CLI wprowadź
az identity show --name "myIdentity" --resource-group $RESOURCE_GROUP_NAME --query 'clientId'.
- W witrynie Azure Portal otwórz tożsamość zarządzaną, która została utworzona wcześniej i w obszarze Przegląd, pobierz wartość w obszarze Identyfikator klienta.
Utwórz połączenie między aplikacją internetową a magazynem App Configuration przy użyciu jednostki usługi. Ta konfiguracja odbywa się za pośrednictwem Service Connector.
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 odnosi się do typu uwierzytelniania konta usługi. Łącznik usługi obsługuje również następujące uwierzytelnianie: tożsamość zarządzana przypisana przez system (UMI), tożsamość zarządzana przypisana przez użytkownika (UMI) i parametry połączenia (wpis tajny).
Utwórz połączenie między aplikacją internetową a magazynem App Configuration przy użyciu parametrów połączenia. To połączenie odbywa się za pośrednictwem łącznika usługi.
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 odnosi się do typu uwierzytelniania parametrów połączenia. Łącznik usługi obsługuje również następujące uwierzytelnianie: tożsamość zarządzana przypisana przez system, tożsamość zarządzana przypisana przez użytkownika i jednostka usługi.
Sprawdzanie poprawności połączenia
Aby sprawdzić, czy połączenie działa, przejdź do aplikacji internetowej. Najprostszym sposobem uzyskania dostępu do aplikacji internetowej jest otwarcie jej w portalu Azure. Na stronie Przegląd wybierz domenę domyślną. Po uruchomieniu witryny internetowej zostanie wyświetlony komunikat: Witaj. Aplikacja internetowa platformy Azure jest teraz połączona z usługą App Configuration by ServiceConnector.
Jak to działa
Dowiedz się, czym łącznik usługi zarządza w tle dla każdego typu uwierzytelniania.
Łącznik usługi zarządza konfiguracją połączenia:
- Skonfiguruj aplikację
AZURE_APPCONFIGURATION_ENDPOINT internetową, aby umożliwić aplikacji dostęp do niej i uzyskać punkt końcowy usługi App Configuration. Uzyskaj dostęp do przykładowego kodu.
- Aktywuj zarządzane uwierzytelnianie przypisane przez system aplikacji internetowej i przyznaj usłudze App Configuration rolę Czytelnik danych, aby umożliwić aplikacji uwierzytelnianie w usłudze App Configuration przy użyciu opcji DefaultAzureCredential z poziomu usługi Azure.Identity. Uzyskaj dostęp do przykładowego kodu.
Łącznik usługi zarządza konfiguracją połączenia:
- Skonfiguruj aplikację
AZURE_APPCONFIGURATION_ENDPOINTinternetową , AZURE_APPCONFIGURATION_CLIENTID aby umożliwić aplikacji dostęp do niej i uzyskać punkt końcowy konfiguracji aplikacji w kodzie;
- Aktywuj zarządzane uwierzytelnianie użytkownika dla aplikacji internetowej i przyznaj usłudze App Configuration rolę Czytelnika danych, aby umożliwić aplikacji uwierzytelnianie w usłudze App Configuration przy użyciu DefaultAzureCredential z Azure.Identity. Uzyskaj dostęp do przykładowego kodu.
Łącznik usługi zarządza konfiguracją połączenia:
- Skonfiguruj aplikację
AZURE_APPCONFIGURATION_ENDPOINT internetową, aby umożliwić aplikacji dostęp do niej i uzyskać punkt końcowy usługi App Configuration. Uzyskaj dostęp do przykładowego kodu.
- Zapisz poświadczenie konta usługi w usłudze WebApp AppSettings
AZURE_APPCONFIGURATION_CLIENTID.
AZURE_APPCONFIGURATION_TENANTID
AZURE_APPCONFIGURATION_CLIENTSECRET i przyznaj jednostce usługi rolę "App Configuration Data Reader", aby aplikację można było uwierzytelnić w App Configuration w kodzie przy użyciu ClientSecretCredential z Azure.Identity.
Łącznik usługi zarządza konfiguracją połączenia:
- Skonfiguruj aplikację
AZURE_APPCONFIGURATION_CONNECTIONSTRING internetową, aby umożliwić aplikacji dostęp do niej i uzyskać parametry połączenia usługi App Configuration. Uzyskaj dostęp do przykładowego kodu.
- Aktywuj zarządzane uwierzytelnianie przypisane przez system aplikacji internetowej i przyznaj usłudze App Configuration rolę Czytelnik danych, aby umożliwić aplikacji uwierzytelnianie w usłudze App Configuration przy użyciu opcji DefaultAzureCredential z poziomu usługi Azure.Identity. Uzyskaj dostęp do przykładowego kodu.
Aby uzyskać więcej informacji, zobacz Service Connector internals (Wewnętrzne elementy łącznika usługi).
Test (opcjonalnie)
Opcjonalnie wykonaj następujące testy:
Zaktualizuj wartość klucza SampleApplication:Settings:Messages w sklepie App Configuration Store.
az appconfig kv set --name <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
Przejdź do aplikacji internetowej platformy Azure zgodnie z wcześniejszym opisem i odśwież stronę. Zobaczysz, że komunikat został zaktualizowany do: hello.
Uprzątnij zasoby
Jeśli nie zamierzasz już używać tych zasobów platformy Azure, usuń je, uruchamiając az group delete polecenie . To polecenie usuwa grupę zasobów i wszystkie zasoby w niej.
az group delete --name <myResourceGroupName> --yes
Następny krok