Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure App Service kann verwaltete Identitäten verwenden, um eine Verbindung mit Back-End-Diensten ohne Verbindungszeichenfolge herzustellen. Bei diesem Ansatz werden die Verbindungsgeheimnisse, die für die Verwaltung erforderlich sind, eliminiert, sodass Ihre Back-End-Konnektivität in einer Produktionsumgebung sicher bleibt. Wenn Sie fertig sind, verfügen Sie über eine App, die programmgesteuerte Aufrufe an Foundry Tools sendet, ohne Verbindungsschlüssel in App Service zu speichern.
Für Back-End-Dienste, die verwaltete Identitäten nicht unterstützen und dennoch Verbindungsgeheimnisse erfordern, können Sie Azure Key Vault zum Verwalten von Verbindungsgeheimnissen verwenden. In diesem Lernprogramm werden Foundry Tools als Beispiel verwendet. Wenn Sie fertig sind, verfügen Sie über eine App, die programmgesteuerte Aufrufe an Foundry Tools sendet, ohne verbindungsgeheimnisse innerhalb von App Service zu speichern.
Tipp
Foundry Tools unterstützt die Authentifizierung über verwaltete Identitäten. In diesem Lernprogramm wird die Abonnementschlüsselauthentifizierung verwendet, um zu veranschaulichen, wie Sie eine Verbindung mit einem Azure-Dienst herstellen können, der keine verwalteten Identitäten von App Service unterstützt.
In diesem Architekturmodell:
- Verwaltete Identitäten sichern die Konnektivität mit dem Schlüsseltresor.
- Der App-Dienst greift auf die geheimen Schlüssel mithilfe von Key Vault-Verweisen als App-Einstellungen zu.
- Der Zugriff auf den Schlüsseltresor ist auf die App beschränkt. App-Mitwirkende, wie z. B. Administratoren, könnten vollständige Kontrolle über die App Service-Ressourcen haben und gleichzeitig keinen Zugriff auf die Geheimnisse des Schlüsseltresors.
- Wenn Ihr Anwendungscode bereits über die Anwendungseinstellungen auf Verbindungsgeheimnisse zugreift, ist keine Änderung erforderlich.
In diesem Tutorial erfahren Sie Folgendes:
- Aktivieren von verwalteten Identitäten
- Verwenden von verwalteten Identitäten zum Herstellen einer Verbindung mit Key Vault
- Verwenden Sie Key Vault Verweise
- Zugriff auf Foundry-Tools
Voraussetzungen
Bereiten Sie Ihre Umgebung auf die Azure CLI vor.
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Get started with Azure Cloud Shell.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen möchten, install die Azure CLI. Wenn Sie Windows oder macOS verwenden, sollten Sie erwägen, Azure CLI in einem Docker-Container auszuführen. Weitere Informationen finden Sie unter How to run the Azure CLI in a Docker container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mit dem Befehl az login beim Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Weitere Anmeldeoptionen finden Sie unter Authentifizierung bei Azure mithilfe von Azure CLI.
Wenn Sie dazu aufgefordert werden, installieren Sie die Azure CLI Erweiterung bei der ersten Verwendung. Weitere Informationen zu Erweiterungen finden Sie unter Use and manage extensions with the Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um auf die neueste Version zu aktualisieren.
Erstellen einer App mit Konnektivität zu Foundry Tools
Erstellen Sie eine Ressourcengruppe, die alle Ihre Ressourcen enthält:
# Save the resource group name as a variable for convenience groupName=myKVResourceGroup region=canadacentral az group create --name $groupName --location $regionErstellen Sie eine Foundry-Tools-Ressource. Ersetzen Sie <den Cs-Ressourcennamen> durch einen eindeutigen Namen.
# Save the resource name as a variable for convenience. csResourceName=<cs-resource-name> az cognitiveservices account create --resource-group $groupName --name $csResourceName --location $region --kind TextAnalytics --sku F0 --custom-domain $csResourceNameHinweis
--sku F0erstellt eine kostenlose Foundry Tools-Ressource. Jedes Abonnement ist auf ein Kontingent von einer Ressource der freien EbeneTextAnalyticsbeschränkt. Wenn Sie Ihr Kontingent bereits verwendet haben, verwenden Sie--sku Sstattdessen.
Konfigurieren einer .NET-App
Klonen Sie das Beispiel-Repository lokal und stellen Sie die Beispielanwendung im App Service bereit. Ersetzen Sie <app-name> durch einen eindeutigen Namen.
# Save the app name as a variable for convenience
appName=<app-name>
# Clone the sample application
git clone https://github.com/Azure-Samples/app-service-language-detector.git
cd app-service-language-detector/dotnet
az webapp up --sku F1 --resource-group $groupName --name $appName --plan $appName --location $region
Konfigurieren von Geheimnissen als App-Einstellungen
Konfigurieren Sie die Geheimnisse der Foundry Tools als App-Einstellungen
CS_ACCOUNT_NAMEundCS_ACCOUNT_KEY.# Get the subscription key for the Foundry Tools resource csKey1=$(az cognitiveservices account keys list --resource-group $groupName --name $csResourceName --query key1 --output tsv) az webapp config appsettings set --resource-group $groupName --name $appName --settings CS_ACCOUNT_NAME="$csResourceName" CS_ACCOUNT_KEY="$csKey1"Wechseln Sie in einem Browser zu Ihrer bereitgestellten App unter
<app-name>.azurewebsites.net. Probieren Sie den Sprachdetektor aus, indem Sie Zeichenfolgen in verschiedenen Sprachen eingeben.
Wenn Sie den Anwendungscode betrachten, befindet sich die Debugausgabe für die Erkennungsergebnisse möglicherweise in derselben Schriftfarbe wie der Hintergrund. Sie können die Ausgabe sehen, indem Sie den Leerraum direkt unterhalb des Resultats hervorheben.
Sichere Backend-Konnektivität
Verbindungsgeheimnisse werden jetzt als App-Einstellungen in Ihrer App Service-App gespeichert. Durch diesen Ansatz werden verbindungsgeheimnisse bereits von Ihrer Anwendungscodebasis gesichert. Allerdings kann jeder Mitwirkende, der Ihre App verwalten kann, auch die App-Einstellungen einsehen. In diesem Abschnitt verschieben Sie die geheimen Verbindungsschlüssel in einen Schlüsseltresor. Sie sperren den Zugriff, sodass nur Sie ihn verwalten können und nur die App Service-App sie mithilfe ihrer verwalteten Identität lesen kann.
Erstellen eines Schlüsseltresors Ersetzen Sie <vault-name> durch einen eindeutigen Namen.
# Save the key vault name as a variable for convenience vaultName=<vault-name> az keyvault create --resource-group $groupName --name $vaultName --location $region --sku standard --enable-rbac-authorizationDer Parameter
legt die Azure rollenbasierte Zugriffssteuerung (RBAC) als Berechtigungsmodell fest . Durch diese Einstellung werden standardmäßig alle Zugriffsrichtlinienberechtigungen ungültig. Geben Sie sich selbst die Key Vault Secrets Officer RBAC-Rolle für den Tresor.
vaultResourceId=$(az keyvault show --name $vaultName --query id --output tsv) myId=$(az ad signed-in-user show --query id --output tsv) az role assignment create --role "Key Vault Secrets Officer" --assignee-object-id $myId --assignee-principal-type User --scope $vaultResourceIdAktivieren Sie die vom System zugewiesene verwaltete Identität für Ihre App, und weisen Sie ihr die Key Vault Secrets User RBAC-Rolle für den Tresor zu.
az webapp identity assign --resource-group $groupName --name $appName --scope $vaultResourceId --role "Key Vault Secrets User"Fügen Sie den Ressourcennamen und den Abonnementschlüssel "Foundry Tools" als geheime Schlüssel zum Tresor hinzu, und speichern Sie ihre IDs als Umgebungsvariablen für den nächsten Schritt.
csResourceKVUri=$(az keyvault secret set --vault-name $vaultName --name csresource --value $csResourceName --query id --output tsv) csKeyKVUri=$(az keyvault secret set --vault-name $vaultName --name cskey --value $csKey1 --query id --output tsv)Zuvor haben Sie die Geheimnisse als App-Einstellungen
CS_ACCOUNT_NAMEundCS_ACCOUNT_KEYin Ihrer App festgelegt. Legen Sie sie stattdessen als Key Vault-Referenzen fest.az webapp config appsettings set --resource-group $groupName --name $appName --settings CS_ACCOUNT_NAME="@Microsoft.KeyVault(SecretUri=$csResourceKVUri)" CS_ACCOUNT_KEY="@Microsoft.KeyVault(SecretUri=$csKeyKVUri)"Wechseln Sie in einem Browser erneut zu
<app-name>.azurewebsites.net. Wenn Sie Erkennungsergebnisse zurückerhalten, verbinden Sie sich mithilfe von Key Vault-Verweisen mit dem Endpunkt "Foundry Tools".
Herzlichen Glückwunsch, Ihre App stellt jetzt eine Verbindung mit Foundry Tools her, indem geheime Schlüssel im Schlüsseltresor verwendet werden, und Sie haben keine Änderungen am Anwendungscode vorgenommen.
Bereinigen von Ressourcen
In den vorherigen Schritten haben Sie Azure Ressourcen in einer Ressourcengruppe erstellt. Wenn Sie nicht erwarten, dass diese Ressourcen in Zukunft benötigt werden, löschen Sie die Ressourcengruppe, indem Sie den folgenden Befehl in der Cloud Shell ausführen:
az group delete --name $groupName
Die Ausführung dieses Befehls kann einige Minuten in Anspruch nehmen.