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:
- Systemseitig zugewiesene verwaltete Identität (SMI)
- Benutzerseitig zugewiesene verwaltete Identität (UMI)
- Service Principal
- Verbindungszeichenfolge
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
Prerequisites
Anmelden bei Azure
Führen Sie az login in der Azure CLI aus, um sich bei Azure anzumelden.
Einrichten von Azure-Ressourcen
Beginnen Sie mit dem Erstellen Ihrer Azure-Ressourcen.
Klonen Sie das folgende Beispielrepository:
git clone https://github.com/Azure-Samples/serviceconnector-webapp-appconfig-dotnet.git
Bereitstellen der Web-App in Azure
Folgen Sie diesen Schritten, um eine App Service-Instanz zu erstellen und die Beispiel-App bereitzustellen. Stellen Sie sicher, dass Sie über die Rolle " Mitwirkender " oder "Besitzer" des Abonnements 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 |
Description |
Example |
| Location |
Wählen Sie einen Ort in Ihrer Nähe aus. Verwenden Sie az account list-locations --output table zum Auflisten von Standorten. |
eastus |
| Ressourcengruppenname |
Verwenden Sie diese Ressourcengruppe, um alle Azure-Ressourcen zu organisieren, die zum Abschließen dieses Lernprogramms erforderlich sind. |
service-connector-tutorial-rg |
| App Service-Name |
Der Name des App-Diensts wird als Name der Ressource in Azure verwendet und um den vollqualifizierten Domänennamen für Ihre App in Form des Serverendpunkts zu bilden. Gültige Zeichen sind A-Z, 0-9 und -. Azure fügt eine zufällige Zeichenfolge an, um den Serverendpunkt in allen Azure eindeutig zu machen. |
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 |
Description |
Example |
| Location |
Wählen Sie einen Ort in Ihrer Nähe aus. Verwenden Sie az account list-locations --output table zum Auflisten von Standorten. |
eastus |
| Ressourcengruppenname |
Verwenden Sie diese Ressourcengruppe, um alle Azure-Ressourcen zu organisieren, die zum Abschließen dieses Lernprogramms erforderlich sind. |
service-connector-tutorial-rg |
| App Service-Name |
Der Name des App-Diensts wird als Name der Ressource in Azure verwendet und um den vollqualifizierten Domänennamen für Ihre App in Form des Serverendpunkts zu bilden. Gültige Zeichen sind A-Z, 0-9 und -. Azure fügt eine zufällige Zeichenfolge an, um den Serverendpunkt in allen Azure eindeutig zu machen. |
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 --name "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 |
Description |
Example |
| Location |
Wählen Sie einen Ort in Ihrer Nähe aus. Verwenden Sie az account list-locations --output table zum Auflisten von Standorten. |
eastus |
| Ressourcengruppenname |
Verwenden Sie diese Ressourcengruppe, um alle Azure-Ressourcen zu organisieren, die zum Abschließen dieses Lernprogramms erforderlich sind. |
service-connector-tutorial-rg |
| App Service-Name |
Der Name des App-Diensts wird als Name der Ressource in Azure verwendet und um den vollqualifizierten Domänennamen für Ihre App in Form des Serverendpunkts zu bilden. Gültige Zeichen sind A-Z, 0-9 und -. Azure fügt eine zufällige Zeichenfolge an, um den Serverendpunkt in allen Azure eindeutig zu machen. |
webapp-appconfig-sp |
Erstellen eines Dienstprinzipals Stellen Sie sicher, dass yourSubscriptionID durch Ihre tatsächliche Abonnement-ID ersetzt wird. 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
Warning
Microsoft empfiehlt, immer den sichersten Authentifizierungsflow zu verwenden. Der in diesem Verfahren beschriebene Authentifizierungsfluss erfordert ein sehr hohes Vertrauensgrad in der Anwendung. Es birgt Risiken, die in anderen Flüssen 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 |
Description |
Example |
| Location |
Wählen Sie einen Ort in Ihrer Nähe aus. Verwenden Sie az account list-locations --output table zum Auflisten von Standorten. |
eastus |
| Ressourcengruppenname |
Verwenden Sie diese Ressourcengruppe, um alle Azure-Ressourcen zu organisieren, die zum Abschließen dieses Lernprogramms erforderlich sind. |
service-connector-tutorial-rg |
| App Service-Name |
Der Name des App-Diensts wird als Name der Ressource in Azure verwendet und um den vollqualifizierten Domänennamen für Ihre App in Form des Serverendpunkts zu bilden. Gültige Zeichen sind A-Z, 0-9 und -. Azure fügt eine zufällige Zeichenfolge an, um den Serverendpunkt in allen Azure eindeutig zu machen. |
webapp-appconfig-cs |
Erstellen Sie einen Azure App-Konfigurationsspeicher.
APP_CONFIG_NAME='my-app-config'
az appconfig create --resource-group $RESOURCE_GROUP_NAME --name $APP_CONFIG_NAME --sku Free --location eastus
Importieren Sie die Testkonfigurationsdatei in Azure App Configuration.
Importieren Sie die Testkonfigurationsdatei mithilfe einer systemseitig zugewiesenen verwalteten Identität in Azure App Configuration.
Wechseln Sie das Verzeichnis zum Ordner ServiceConnectorSample.
Importieren Sie die ./sampleconfigs.json Testkonfigurationsdatei in den App-Konfigurationsspeicher. Wenn Sie Cloud Shell verwenden, laden Sie sampleconfigs.json hoch, bevor Sie den Befehl ausführen.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Importieren Sie die Testkonfigurationsdatei mithilfe einer benutzerseitig zugewiesenen verwalteten Identität in Azure App Configuration.
Wechseln Sie das Verzeichnis zum Ordner ServiceConnectorSample.
Importieren Sie die ./sampleconfigs.json Testkonfigurationsdatei in den App-Konfigurationsspeicher. Wenn Sie Cloud Shell verwenden, laden Sie sampleconfigs.json hoch, bevor Sie den Befehl ausführen.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Importieren Sie die Testkonfigurationsdatei mithilfe des Dienstprinzipals in Azure App Configuration.
Wechseln Sie das Verzeichnis zum Ordner ServiceConnectorSample.
Importieren Sie die ./sampleconfigs.json Testkonfigurationsdatei in den App-Konfigurationsspeicher. Wenn Sie Cloud Shell verwenden, laden Sie sampleconfigs.json hoch, bevor Sie den Befehl ausführen.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Warning
Microsoft empfiehlt, immer den sichersten Authentifizierungsflow zu verwenden. Der in diesem Verfahren beschriebene Authentifizierungsfluss erfordert ein sehr hohes Vertrauensgrad in der Anwendung. Es birgt Risiken, die in anderen Flüssen 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 das Verzeichnis zum Ordner ServiceConnectorSample.
Importieren Sie die ./sampleconfigs.json Testkonfigurationsdatei in den App-Konfigurationsspeicher. Wenn Sie Cloud Shell verwenden, laden Sie sampleconfigs.json hoch, bevor Sie den Befehl ausführen.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Verbinden der Web-App mit App Configuration
Erstellen Sie eine Verbindung zwischen Ihrer Webanwendung und Ihrem App Configuration-Speicher.
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.
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 bezieht sich auf den Authentifizierungstyp der systemseitig zugewiesenen verwalteten Identität (SMI). Service Connector unterstützt auch die folgenden Authentifizierungen: vom Benutzer zugewiesene verwaltete Identität (UMI), Verbindungszeichenfolge [geheim] und Service Principal.
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.
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 bezieht sich auf den Authentifizierungstyp „Benutzerseitig zugewiesene verwaltete Identität“. Service Connector unterstützt auch folgende Authentifizierungsmethoden: systemzugewiesene verwaltete Identität, Verbindungszeichenfolge (Schlüssel) und Service Principal.
Es gibt zwei Möglichkeiten, wie Sie die client-id finden können:
- Geben Sie in der Azure CLI
az identity show --name "myIdentity" --resource-group $RESOURCE_GROUP_NAME --query 'clientId' ein.
- Öffnen Sie im Azure-Portal die verwaltete Identität, die zuvor erstellt wurde, und rufen Sie im Überblick den Wert unter Client ID ab.
Erstellen Sie eine Verbindung zwischen Ihrer Webanwendung und Ihrem App Configuration-Speicher mithilfe eines Dienstprinzipals. Diese Konfiguration erfolgt über 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 verweist auf den Authentifizierungstyp „Dienstprinzipal“. Service Connector unterstützt auch die folgenden Authentifizierungen: vom System zugewiesene verwaltete Identität (UMI), vom Benutzer zugewiesene verwaltete Identität (UMI) und Verbindungszeichenfolge (geheim).
Erstellen Sie eine Verbindung zwischen Ihrer Webanwendung und Ihrem App Configuration-Speicher mithilfe einer Verbindungszeichenfolge. Diese Verbindung erfolgt über den Dienstconnector.
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 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 zu Ihrer Web-App. Die einfachste Möglichkeit, ihre Web-App zu öffnen, besteht darin, sie im Azure-Portal zu öffnen. Wählen Sie auf der Seite "Übersicht" die Standarddomäne aus. Nachdem die Website online ist, sehen Sie, dass folgendes angezeigt wird: Hallo. Ihre Azure WebApp ist jetzt durch ServiceConnector mit App Configuration verbunden.
Funktionsweise
Erfahren Sie, was Service Connector hinter den Kulissen für jeden Authentifizierungstyp 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. Zugriff auf Beispielcode.
- 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. Zugriff auf Beispielcode.
Der Dienstconnector verwaltet die Verbindungskonfiguration für Sie:
- Richten Sie die Web-App
AZURE_APPCONFIGURATION_ENDPOINT und AZURE_APPCONFIGURATION_CLIENTID so ein, dass die Anwendung darauf zugreifen kann und rufen Sie den App-Konfigurationsendpunkt im Code ab.
- 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 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. Zugriff auf Beispielcode.
- Speichern Sie Anmeldeinformationen für den Dienstprinzipal in den Web-App-Einstellungen
AZURE_APPCONFIGURATION_CLIENTID.
AZURE_APPCONFIGURATION_TENANTID, AZURE_APPCONFIGURATION_CLIENTSECRET, und gewähren Sie 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. Zugriff auf Beispielcode.
- 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.
Zugriff auf Beispielcode.
Weitere Informationen finden Sie unter "Service Connector internals".
Test (optional)
Führen Sie optional die folgenden Tests aus:
Aktualisieren Sie den Wert des Schlüssels SampleApplication:Settings:Messages im App Configuration-Speicher.
az appconfig kv set --name <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
Navigieren Sie wie zuvor beschrieben zu Ihrer Azure Web App, und aktualisieren Sie die Seite. Sie sehen, dass die Nachricht aktualisiert wird auf: hallo.
Bereinigen von Ressourcen
Nachdem Sie fertig sind, löschen Sie sie, wenn Sie diese Azure-Ressourcen nicht mehr verwenden werden, indem Sie den az group delete Befehl ausführen. Dieser Befehl löscht Ihre Ressourcengruppe und alle darin aufgeführten Ressourcen.
az group delete --name <myResourceGroupName> --yes
Nächster Schritt