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, wodurch Verbindungsschlüssel zum Verwalten überflüssig werden und Ihre Back-End-Konnektivität in einer Produktionsumgebung sicher bleibt. Für Back-End-Dienste, die verwaltete Identitäten nicht unterstützen und dennoch Verbindungsgeheimnisse erfordern, können Sie Key Vault zum Verwalten von Verbindungsgeheimnissen verwenden. In diesem Lernprogramm werden Foundry Tools als Beispiel verwendet, um Ihnen zu zeigen, wie es in der Praxis umgesetzt wird. Wenn Sie fertig sind, verfügen Sie über eine App, die programmgesteuerte Aufrufe an Foundry Tools vorgibt, ohne verbindungsgeheimnisse innerhalb von App Service zu speichern.
Tipp
Foundry Tools unterstützen die Authentifizierung über verwaltete Identitäten, aber in diesem Tutorial wird die Subscription-Key-Authentifizierung verwendet, um zu demonstrieren, wie Sie eine Verbindung zu einem Azure-Dienst herstellen könnten, der keine verwalteten Identitäten von App Services unterstützt.
Mit dieser Architektur:
- Die Verbindung mit Key Vault wird durch verwaltete Identitäten gesichert.
- Der App-Dienst greift mithilfe von Key Vault-Verweisen in Form von App-Einstellungen auf die geheimen Schlüssel zu.
- Der Zugriff auf den Schlüsseltresor ist auf die App beschränkt. App-Mitwirkende, z. B. Administratoren, haben möglicherweise die vollständige Kontrolle über die App Service-Ressourcen und haben gleichzeitig keinen Zugriff auf die Key Vault geheimen Schlüssel.
- Wenn Ihr Anwendungscode bereits über die Anwendungseinstellungen auf Verbindungsgeheimnisse zugreift, ist keine Änderung erforderlich.
Sie lernen 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 resource group name as variable for convenience groupName=myKVResourceGroup region=westeurope az group create --name $groupName --location $regionErstellen Sie eine Azure AI services Ressource. Ersetzen Sie <cs-resource-name> durch einen eindeutigen Namen Ihrer Wahl.
# Save resource name as 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 Stufe Azure AI Services Ressource. Jedes Abonnement ist auf ein Kontingent von einer Ressource der freien EbeneTextAnalyticsbeschränkt. Wenn Sie die Quote bereits überschritten haben, verwenden Sie stattdessen--sku S.
Konfigurieren Python App
Klonen Sie das Beispiel-Repository lokal und stellen Sie die Beispielanwendung im App Service bereit. Ersetzen Sie <app-name> durch einen eindeutigen Namen.
# Clone and prepare sample application
git clone https://github.com/Azure-Samples/app-service-language-detector.git
cd app-service-language-detector/python
zip -r default.zip .
# Save app name as variable for convenience
appName=<app-name>
az appservice plan create --resource-group $groupName --name $appName --sku FREE --location $region --is-linux
az webapp create --resource-group $groupName --plan $appName --name $appName --runtime "python:3.14"
az webapp config appsettings set --resource-group $groupName --name $appName --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
az webapp deploy --resource-group $groupName --name $appName --src-path ./default.zip
Die vorherigen Befehle:
- Erstellen eines App Service-Plans für Linux
- Erstellen einer Web-App für Python 3.14
- Konfigurieren der Web-App zum Installieren der Python-Pakete bei der Bereitstellung
- Hochladen der ZIP-Datei und Installieren der Python-Pakete
Konfigurieren von Geheimnissen als App-Einstellungen
Konfigurieren Sie die Geheimnisse der Foundry Tools als App-Einstellungen
CS_ACCOUNT_NAMEundCS_ACCOUNT_KEY.# Get subscription key for Cognitive Services 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"Navigieren Sie im Browser zu Ihrer bereitgestellten Anwendung unter
<app-name>.azurewebsites.netund testen Sie den Sprachdetektor mit Strings in verschiedenen Sprachen.
Wenn Sie sich den Anwendungscode ansehen, werden Sie feststellen, dass die Debug-Ausgabe für die Erkennungsergebnisse die gleiche Schriftfarbe hat wie der Hintergrund. Sie können dies erkennen, indem Sie versuchen, die weiße Fläche direkt unter dem Ergebnis zu markieren.
Sichere Backend-Konnektivität
Derzeit werden die Verbindungsgeheimnisse als App-Einstellungen in Ihrer App Service-App gespeichert. Bei diesem Ansatz werden bereits die Verbindungsgeheimnisse aus der Codebasis Ihrer Anwendung gesichert. Allerdings kann jeder Mitwirkende, der Ihre App verwalten kann, auch die App-Einstellungen einsehen. In diesem Schritt verschieben Sie die Verbindungsgeheimnisse in einen Schlüsseltresor und sperren den Zugriff, so dass nur Sie sie verwalten können und nur die App Service App sie mit ihrer verwalteten Identität lesen kann.
Erstellen eines Schlüsseltresors Ersetzen Sie <vault-name> durch einen eindeutigen Namen.
# Save app name as 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 . Diese Einstellung macht standardmäßig alle Zugriffsrichtlinienberechtigungen ungültig. Geben Sie sich selbst die Key Vault Secrets Officer RBAC-Rolle für die Schlüsselbund.
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 Azure AI services Ressourcennamen und den Abonnementschlüssel 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)"Navigieren Sie im Browser erneut zu
<app-name>.azurewebsites.net. Wenn Sie Erkennungsergebnisse zurückerhalten, stellen Sie mit dem Azure AI Services-Endpunkt und den Key Vault-Referenzen eine Verbindung her.
Herzlichen Glückwunsch, Ihre App stellt jetzt eine Verbindung mit Foundry Tools her, wobei geheime Schlüssel im Schlüsseltresor gespeichert sind, ohne dass Änderungen an Ihrem Anwendungscode vorgenommen werden.
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 eine Minute in Anspruch nehmen.