Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa Azure App Service może używać tożsamości zarządzanych do łączenia się z usługami zaplecza bez parametrów połączenia. Takie podejście eliminuje konieczność zarządzania tajnymi danymi połączeń i utrzymuje bezpieczeństwo łączności zaplecza w środowisku produkcyjnym. Po zakończeniu będziesz mieć aplikację, która wykonuje wywołania programistyczne do narzędzi Foundry Tools bez przechowywania danych uwierzytelniających połączenia w usłudze App Service.
W przypadku usług zaplecza, które nie obsługują tożsamości zarządzanych i nadal wymagają sekretów połączeń, możesz zarządzać sekretami połączeń za pomocą usługi Azure Key Vault. W tym samouczku użyto narzędzi Foundry Jako przykładu. Po zakończeniu będziesz mieć aplikację, która wykonuje wywołania programistyczne do narzędzi Foundry Tools bez przechowywania tajnych danych połączeń w usłudze App Service.
Wskazówka
Narzędzia Foundry obsługują uwierzytelnianie za pośrednictwem tożsamości zarządzanych. Ten samouczek wykorzystuje uwierzytelnianie przy użyciu klucza subskrypcji, aby pokazać, jak można nawiązać połączenie z usługą platformy Azure, która nie obsługuje tożsamości zarządzanych z usługi App Service.
W tej architekturze:
- Tożsamości zarządzane zapewniają bezpieczne połączenie ze skarbcem kluczy.
- Usługa App Service uzyskuje dostęp do sekretów przy użyciu odwołań do Key Vault jako ustawień aplikacji.
- Dostęp do magazynu kluczy jest ograniczony do aplikacji. Kontrybutorzy aplikacji, tacy jak administratorzy, mogą mieć pełną kontrolę nad zasobami App Service, a jednocześnie nie mieć dostępu do sekretów Key Vault.
- Jeśli kod aplikacji już uzyskuje dostęp do tajnych danych połączenia za pomocą ustawień w aplikacji, nie jest wymagana żadna zmiana.
Z tego samouczka dowiesz się:
- Włącz tożsamości zarządzane
- Nawiązywanie połączenia z usługą Key Vault przy użyciu tożsamości zarządzanych
- Używanie odwołań Key Vault
- Narzędzia programu Access Foundry
Wymagania wstępne
Przygotuj środowisko do Azure CLI.
Użyj środowiska powłoki Bash w Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Rozpocznij pracę z Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia odniesienia interfejsu wiersza polecenia lokalnie, zainstaluj Azure CLI. Jeśli korzystasz z Windows lub macOS, rozważ uruchomienie Azure CLI w kontenerze platformy Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić Azure CLI w kontenerze platformy Docker.
Jeśli używasz instalacji lokalnej, zaloguj się do Azure CLI przy użyciu polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Uwierzytelnianie w Azure za pomocą Azure CLI.
Po wyświetleniu monitu zainstaluj rozszerzenie Azure CLI podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Używanie rozszerzeń i zarządzanie nimi za pomocą Azure CLI.
Uruchom az version, aby sprawdzić zainstalowaną wersję i biblioteki zależne. Aby zaktualizować do najnowszej wersji, uruchom az upgrade.
Tworzenie aplikacji z łącznością z narzędziami Foundry
Utwórz grupę zasobów, aby zawierała wszystkie zasoby:
# Save the resource group name as a variable for convenience groupName=myKVResourceGroup region=canadacentral az group create --name $groupName --location $regionUtwórz zasób Foundry Tools. Zastąp <cs-resource-name> unikalną nazwą.
# 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 $csResourceNameUwaga
--sku F0Tworzy zasób narzędzi Foundry w darmowej warstwie. Każda subskrypcja jest ograniczona do jednego zasobu w warstwieTextAnalyticsbezpłatnej. Jeśli limit przydziału został już użyty, użyj--sku Szamiast tego.
Konfigurowanie aplikacji JavaScript
Sklonuj przykładowe repozytorium lokalnie i wdróż przykładową aplikację w usłudze App Service. Zastąp <app-name> unikatową nazwą.
# Clone and prepare sample application
git clone https://github.com/Azure-Samples/app-service-language-detector.git
cd app-service-language-detector/javascript
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 "node:24-lts"
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
Poprzednie polecenia:
- Tworzenie planu usługi App Service dla systemu Linux
- Tworzenie aplikacji internetowej dla Node.js 24 LTS
- Konfigurowanie aplikacji internetowej w celu zainstalowania pakietów npm we wdrożeniu
- Przekaż plik zip i zainstaluj pakiety npm
Konfigurowanie sekretów jako ustawień aplikacji
Skonfiguruj tajne klucze narzędzi Foundry jako ustawienia
CS_ACCOUNT_NAMEaplikacji iCS_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"W przeglądarce przejdź do wdrożonej aplikacji pod adresem
<app-name>.azurewebsites.net. Wypróbuj narzędzie do wykrywania języka, wprowadzając ciągi w różnych językach.
Jeśli spojrzysz na kod aplikacji, dane wyjściowe debugowania dla wyników wykrywania mogą być w tym samym kolorze czcionki co tło. Dane wyjściowe można wyświetlić, wyróżniając białe znaki bezpośrednio poniżej wyniku.
Zabezpieczanie łączności zaplecza
Tajne dane połączeń są teraz przechowywane jako ustawienia aplikacji w usłudze App Service. Takie podejście już zabezpiecza tajne dane połączeń przed dostępem z podstawowego kodu aplikacji. Jednak każdy współautor, który może zarządzać twoją aplikacją, może również zobaczyć ustawienia aplikacji. W tej sekcji przeniesiesz tajne dane połączenia do magazynu kluczy. Dostęp można zablokować, aby tylko Ty mógł nim zarządzać i tylko aplikacja usługi App Service mogła go odczytać, używając swojej tożsamości zarządzanej.
Utwórz magazyn kluczy. Zastąp <tekst vault-name> unikatową nazwą.
# 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-authorizationParametr
--enable-rbac-authorizationustawia kontrolę dostępu Azure opartą na rolach (RBAC) jako model uprawnień. To ustawienie domyślnie unieważnia wszystkie uprawnienia zasad dostępu.Przyznaj sobie rolę RBAC Key Vault Secrets Officer dla skarbca.
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 $vaultResourceIdWłącz tożsamość zarządzaną systemowo dla aplikacji i nadaj jej rolę RBAC Key Vault Secrets User dla repozytorium.
az webapp identity assign --resource-group $groupName --name $appName --scope $vaultResourceId --role "Key Vault Secrets User"Dodaj nazwę zasobu narzędzi Foundry Tools i klucz subskrypcji jako wpisy tajne do magazynu i zapisz ich identyfikatory jako zmienne środowiskowe w następnym kroku.
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)Wcześniej ustawiłeś sekrety jako ustawienia
CS_ACCOUNT_NAMEiCS_ACCOUNT_KEYw swojej aplikacji. Teraz ustaw je jako referencje magazynu kluczy zamiast.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)"W przeglądarce ponownie przejdź do
<app-name>.azurewebsites.net. Jeśli otrzymasz wyniki wykrywania, połączysz się z punktem końcowym narzędzi Foundry Tools przy użyciu odwołań do magazynu kluczy.
Gratulacje, twoja aplikacja teraz łączy się z narzędziami Foundry, które korzystają z sekretów przechowywanych w twoim magazynie kluczy, i nie musiałeś wprowadzać żadnych zmian w kodzie aplikacji.
Czyszczenie zasobów
W poprzednich krokach utworzono zasoby Azure w grupie zasobów. Jeśli nie oczekujesz, że te zasoby będą potrzebne w przyszłości, usuń grupę zasobów, uruchamiając następujące polecenie w Cloud Shell:
az group delete --name $groupName
Uruchomienie tego polecenia może potrwać minutę.