Tutorial: Verbinden einer Web-App mit Azure App Configuration mithilfe eines Dienstconnectors
Artikel
Erfahren Sie, wie Sie eine ASP.NET Core-App, die unter Azure App Service ausgeführt wird, mithilfe einer der folgenden Methoden mit Azure App Configuration verbinden:
In diesem Tutorial verwenden Sie die Azure CLI, um folgende Aufgaben auszuführen:
Einrichten von Azure-Ressourcen
Erstellen einer Verbindung zwischen einer Web-App und App Configuration
Erstellen und Bereitstellen Ihrer App für Azure App Service
Voraussetzungen
Ein Azure-Konto mit einem aktiven Abonnement. Ihre Zugriffsrolle innerhalb des Abonnements muss „Mitwirkender“ oder „Besitzer“ sein. Sie können kostenlos ein Konto erstellen.
Folgen Sie diesen Schritten, um eine App Service-Instanz zu erstellen und die Beispiel-App bereitzustellen. Vergewissern Sie sich, dass Sie über die Rolle „Abonnementmitwirkender“ oder „Besitzer“ verfügen.
Erstellen Sie einen App-Dienst, und stellen Sie die Beispiel-App bereit, die die systemseitig zugewiesene verwaltete Identität zur Interaktion mit der App-Konfiguration verwendet.
# 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
BESCHREIBUNG
Beispiel
Standort
Wählen Sie einen Standort in Ihrer Nähe aus. Verwenden Sie az account list-locations --output table zum Auflisten von Standorten.
eastus
Ressourcengruppenname
Sie verwenden diese Ressourcengruppe, um alle zum Abschließen dieses Tutorials erforderlichen Azure-Ressourcen zu organisieren.
service-connector-tutorial-rg
App Service-Name
Der App Service-Name wird als Name der Ressource in Azure und zum Erstellen des vollqualifizierten Domänennamens für Ihre App in Form des Serverendpunkts https://<app-service-name>.azurewebsites.com verwendet. Dieser Name muss innerhalb von Azure eindeutig sein, und zulässig sind ausschließlich die Zeichen A-Z, 0-9 und -.
webapp-appconfig-smi
Erstellen Sie einen App-Dienst, und stellen Sie die Beispiel-App bereit, die die benutzerseitig zugewiesene verwaltete Identität zur Interaktion mit der App-Konfiguration verwendet.
# 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
BESCHREIBUNG
Beispiel
Standort
Wählen Sie einen Standort in Ihrer Nähe aus. Verwenden Sie az account list-locations --output table zum Auflisten von Standorten.
eastus
Ressourcengruppenname
Sie verwenden diese Ressourcengruppe, um alle zum Abschließen dieses Tutorials erforderlichen Azure-Ressourcen zu organisieren.
service-connector-tutorial-rg
App Service-Name
Der App Service-Name wird als Name der Ressource in Azure und zum Erstellen des vollqualifizierten Domänennamens für Ihre App in Form des Serverendpunkts https://<app-service-name>.azurewebsites.com verwendet. Dieser Name muss innerhalb von Azure eindeutig sein, und zulässig sind ausschließlich die Zeichen A-Z, 0-9 und -.
webapp-appconfig-umi
Erstellen Sie eine benutzerseitig zugewiesene verwaltete Identität. Speichern Sie die Ausgabe in einem temporären Editor.
az identity create --resource-group $RESOURCE_GROUP_NAME -n "myIdentity"
Erstellen Sie einen App-Dienst, und stellen Sie die Beispiel-App bereit, die den Dienstprinzipal zur Interaktion mit der App-Konfiguration verwendet.
# 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
BESCHREIBUNG
Beispiel
Standort
Wählen Sie einen Standort in Ihrer Nähe aus. Verwenden Sie az account list-locations --output table zum Auflisten von Standorten.
eastus
Ressourcengruppenname
Sie verwenden diese Ressourcengruppe, um alle zum Abschließen dieses Tutorials erforderlichen Azure-Ressourcen zu organisieren.
service-connector-tutorial-rg
App Service-Name
Der App Service-Name wird als Name der Ressource in Azure und zum Erstellen des vollqualifizierten Domänennamens für Ihre App in Form des Serverendpunkts https://<app-service-name>.azurewebsites.com verwendet. Dieser Name muss innerhalb von Azure eindeutig sein, und zulässig sind ausschließlich die Zeichen A-Z, 0-9 und -.
webapp-appconfig-sp
Erstellen Sie einen Dienstprinzipal. Ersetzen Sie dabei die yourSubscriptionID durch Ihre tatsächliche Abonnement-ID. Speichern Sie die Ausgabe in einem temporären Editor.
az ad sp create-for-rbac --name myServicePrincipal --role Contributor --scopes /subscriptions/{yourSubscriptionID}/resourceGroups/$RESOURCE_GROUP_NAME
Warnung
Microsoft empfiehlt, immer den sichersten Authentifizierungsflow zu verwenden. Der in diesem Verfahren beschriebene Authentifizierungsflow erfordert ein sehr hohes Maß an Vertrauen in die Anwendung und birgt Risiken, die bei anderen Flows nicht vorhanden sind. Sie sollten diesen Flow nur verwenden, wenn andere sicherere Flows (z. B. verwaltete Identitäten) nicht anwendbar sind.
Erstellen Sie einen Dienst, und stellen Sie die Beispiel-App bereit, die die Verbindungszeichenfolge für die Interaktion mit der App-Konfiguration verwendet.
# 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
BESCHREIBUNG
Beispiel
Standort
Wählen Sie einen Standort in Ihrer Nähe aus. Verwenden Sie az account list-locations --output table zum Auflisten von Standorten.
eastus
Ressourcengruppenname
Sie verwenden diese Ressourcengruppe, um alle zum Abschließen dieses Tutorials erforderlichen Azure-Ressourcen zu organisieren.
service-connector-tutorial-rg
App Service-Name
Der App Service-Name wird als Name der Ressource in Azure und zum Erstellen des vollqualifizierten Domänennamens für Ihre App in Form des Serverendpunkts https://<app-service-name>.azurewebsites.com verwendet. Dieser Name muss innerhalb von Azure eindeutig sein, und zulässig sind ausschließlich die Zeichen A-Z, 0-9 und -.
Importieren Sie die Testkonfigurationsdatei mithilfe einer systemseitig zugewiesenen verwalteten Identität in Azure App Configuration.
Wechseln Sie in den Ordner ServiceConnectorSample.
Importieren Sie die Testkonfigurationsdatei ./sampleconfigs.json in den App Configuration-Speicher. Wenn Sie Cloud Shell verwenden, laden Sie sampleconfigs.json hoch, bevor Sie den Befehl ausführen.
Importieren Sie die Testkonfigurationsdatei mithilfe einer benutzerseitig zugewiesenen verwalteten Identität in Azure App Configuration.
Wechseln Sie in den Ordner ServiceConnectorSample.
Importieren Sie die Testkonfigurationsdatei ./sampleconfigs.json in den App Configuration-Speicher. Wenn Sie Cloud Shell verwenden, laden Sie sampleconfigs.json hoch, bevor Sie den Befehl ausführen.
Importieren Sie die Testkonfigurationsdatei mithilfe des Dienstprinzipals in Azure App Configuration.
Wechseln Sie in den Ordner ServiceConnectorSample.
Importieren Sie die Testkonfigurationsdatei ./sampleconfigs.json in den App Configuration-Speicher. Wenn Sie Cloud Shell verwenden, laden Sie sampleconfigs.json hoch, bevor Sie den Befehl ausführen.
Microsoft empfiehlt, immer den sichersten Authentifizierungsflow zu verwenden. Der in diesem Verfahren beschriebene Authentifizierungsflow erfordert ein sehr hohes Maß an Vertrauen in die Anwendung und birgt Risiken, die bei anderen Flows nicht vorhanden sind. Sie sollten diesen Flow nur verwenden, wenn andere sicherere Flows (z. B. verwaltete Identitäten) nicht anwendbar sind.
Importieren Sie die Testkonfigurationsdatei mithilfe der Verbindungszeichenfolge in Azure App Configuration.
Wechseln Sie in den Ordner ServiceConnectorSample.
Importieren Sie die Testkonfigurationsdatei ./sampleconfigs.json in den App Configuration-Speicher. Wenn Sie Cloud Shell verwenden, laden Sie sampleconfigs.json hoch, bevor Sie den Befehl ausführen.
Erstellen Sie eine Verbindung zwischen Ihrer Anwendung und Ihrem App Configuration-Speicher unter Verwendung einer Authentifizierung mit systemseitig zugewiesener verwalteter Identität. Diese Verbindung erfolgt über den Dienstconnector.
system-identity bezieht sich auf den Authentifizierungstyp der systemseitig zugewiesenen verwalteten Identität (SMI). Der Dienstconnector unterstützt auch die folgenden Authentifizierungen: Benutzerseitig zugewiesene verwaltete Identität (UMI), Verbindungszeichenfolge (Geheimnis) und Dienstprinzipal.
Erstellen Sie eine Verbindung zwischen Ihrer Anwendung und Ihrem App Configuration-Speicher unter Verwendung einer Authentifizierung mit benutzerseitig zugewiesener verwalteter Identität. Diese Verbindung erfolgt über den Dienstconnector.
user-identity bezieht sich auf den Authentifizierungstyp „Benutzerseitig zugewiesene verwaltete Identität“. Der Dienstconnector unterstützt auch die folgenden Authentifizierungen: Systemseitig zugewiesene verwaltete Identität (SMI), Verbindungszeichenfolge (Geheimnis) und Dienstprinzipal.
Es gibt zwei Möglichkeiten, wie Sie die client-id finden können:
Geben Sie in der Azure CLI az identity show -n "myIdentity" -g $RESOURCE_GROUP_NAME --query 'clientId' ein.
Öffnen Sie im Azure-Portal die zuvor erstellte verwaltete Identität, und rufen Sie in der Übersicht den Wert unter Client-ID auf.
Erstellen Sie eine Verbindung zwischen Ihrer Webanwendung und Ihrem App Configuration-Speicher mithilfe eines Dienstprinzipals. Dies erfolgt über den Dienstconnector.
service-principal verweist auf den Authentifizierungstyp „Dienstprinzipal“. Der Dienstconnector unterstützt auch die folgenden Authentifizierungen: Systemseitig zugewiesene verwaltete Identität (SMI), benutzerseitig zugewiesene verwaltete Identität (UMI) und Verbindungszeichenfolge (Geheimnis).
Erstellen Sie eine Verbindung zwischen Ihrer Webanwendung und Ihrem App Configuration-Speicher mithilfe einer Verbindungszeichenfolge. Diese Verbindung erfolgt über den Dienstconnector.
secret verweist auf den Authentifizierungstyp „Verbindungszeichenfolge“. Der Dienstconnector unterstützt auch die folgenden Authentifizierungen: Systemseitig zugewiesene verwaltete Identität (SMI), benutzerseitig zugewiesene verwaltete Identität (UMI) und Dienstprinzipal.
Überprüfen der Verbindung
Um zu überprüfen, ob die Verbindung funktioniert, navigieren Sie in Ihrem Browser zu Ihrer Web-App unter https://<myWebAppName>.azurewebsites.net/. Sobald die Website verfügbar ist, sehen Sie die Meldung „Hallo. Ihre Azure-Web-App ist jetzt über ServiceConnector mit App Configuration verbunden.“
Funktionsweise
Im Folgenden erfahren Sie, was der Dienstconnector im Hintergrund für die einzelnen Authentifizierungstypen verwaltet.
Der Dienstconnector verwaltet die Verbindungskonfiguration für Sie:
Richten Sie den AZURE_APPCONFIGURATION_ENDPOINT der Web-App ein, damit die Anwendung darauf zugreifen und den App Configuration-Endpunkt abrufen kann. Greifen Sie auf den Beispielcode zu.
Aktivieren Sie die Authentifizierung vom Typ „Systemseitig zugewiesene verwaltete Identität“ der Web-App, und gewähren Sie App Configuration die Rolle „Datenleseberechtigter“, damit sich die Anwendung mithilfe von „DefaultAzureCredential“ aus „Azure.Identity“ bei App Configuration authentifizieren kann. Greifen Sie auf den Beispielcode zu.
Der Dienstconnector verwaltet die Verbindungskonfiguration für Sie:
Richten Sie den AZURE_APPCONFIGURATION_ENDPOINT und die AZURE_APPCONFIGURATION_CLIENTID der Web-App ein, damit die Anwendung darauf zugreifen und den App Configuration-Endpunkt im Code abrufen kann.
Aktivieren Sie die Authentifizierung vom Typ „Benutzerseitig zugewiesene verwaltete Identität“ der Web-App, und gewähren Sie App Configuration die Rolle „Datenleseberechtigter“, damit sich die Anwendung mithilfe von „DefaultAzureCredential“ aus „Azure.Identity“ bei App Configuration authentifizieren kann. Greifen Sie auf den Beispielcode zu.
Der Dienstconnector verwaltet die Verbindungskonfiguration für Sie:
Richten Sie den AZURE_APPCONFIGURATION_ENDPOINT der Web-App ein, damit die Anwendung darauf zugreifen und den App Configuration-Endpunkt abrufen kann. Greifen Sie auf den Beispielcode zu.
Speichern Sie Anmeldeinformationen für den Dienstprinzipal in der WebApp AppSettings-AZURE_APPCONFIGURATION_CLIENTID. AZURE_APPCONFIGURATION_TENANTID und AZURE_APPCONFIGURATION_CLIENTSECRET gewähren dem Dienstprinzipal die Rolle „Datenleseberechtigter“ für App Configuration, sodass die Anwendung mithilfe von ClientSecretCredential aus Azure.Identity für App Configuration im Code authentifiziert werden kann.
Der Dienstconnector verwaltet die Verbindungskonfiguration für Sie:
Richten Sie die AZURE_APPCONFIGURATION_CONNECTIONSTRING der Web-App ein, damit die Anwendung darauf zugreifen und die App Configuration-Verbindungszeichenfolge abrufen kann. Greifen Sie auf den Beispielcode zu.
Aktivieren Sie die Authentifizierung vom Typ „Systemseitig zugewiesene verwaltete Identität“ der Web-App, und gewähren Sie App Configuration die Rolle „Datenleseberechtigter“, damit sich die Anwendung mithilfe von „DefaultAzureCredential“ aus „Azure.Identity“ bei App Configuration authentifizieren kann. Greifen Sie auf den Beispielcode zu.
Aktualisieren Sie den Wert des Schlüssels SampleApplication:Settings:Messages im App Configuration-Speicher.
az appconfig kv set -n <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
Navigieren Sie zu Ihrer Azure-Web-App, indem Sie zu https://<myWebAppName>.azurewebsites.net/ wechseln und die Seite aktualisieren. Sie werden sehen, dass die Nachricht zu „Hallo“ aktualisiert wird.
Bereinigen von Ressourcen
Wenn Sie diese Azure-Ressourcen nicht mehr verwenden werden, löschen Sie sie, indem Sie den Befehl az group delete ausführen. Mit diesem Befehl werden Ihre Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.
az group delete -n <myResourceGroupName> --yes
Nächste Schritte
Befolgen Sie die unten aufgeführten Tutorials, um mehr über Service Connector zu erfahren.