Ćwiczenie — tworzenie jednostki usługi i klucza
Ważne
Do wykonania tego ćwiczenia potrzebna jest własna subskrypcja platformy Azure. Ponadto mogą zostać naliczone opłaty. Jeśli nie masz jeszcze subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Przed utworzeniem potoku wdrażania dla firmowej witryny sieci Web toy należy utworzyć jednostkę usługi i udzielić jej dostępu do środowiska platformy Azure. W tym ćwiczeniu utworzysz jednostkę usługi, która będzie używana dla potoku wdrażania.
Podczas tego procesu wykonasz następujące czynności:
- Utwórz aplikację, jednostkę usługi i klucz w ramach jednej operacji.
- Bezpiecznie obsłuż klucz.
- Sprawdź, czy jednostka usługi działa, logując się do platformy Azure przy użyciu poświadczeń.
To ćwiczenie wymaga uprawnień do tworzenia aplikacji i jednostek usługi w katalogu Microsoft Entra. Jeśli nie możesz spełnić tego wymagania przy użyciu bieżącego konta platformy Azure, możesz uzyskać bezpłatną wersję próbną i utworzyć nową subskrypcję i dzierżawę platformy Azure. Możesz też pominąć to ćwiczenie.
Logowanie się do platformy Azure
Aby pracować z jednostkami usługi na platformie Azure, musisz zalogować się do konta platformy Azure z poziomu terminalu programu Visual Studio Code.
W menu Terminal wybierz pozycję Nowy terminal. Okno terminalu zwykle otwiera się w dolnej połowie ekranu.
Domyślna powłoka to zazwyczaj pwsh, jak pokazano po prawej stronie okna terminalu.
Wybierz listę rozwijaną Uruchom profil, a następnie wybierz pozycję Azure Cloud Shell (Bash).
Zostanie otwarta nowa powłoka.
Logowanie się do platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure
W terminalu programu Visual Studio Code zaloguj się do platformy Azure, uruchamiając następujące polecenie:
az login
W przeglądarce, która zostanie otwarta, zaloguj się do konta platformy Azure.
Aby wdrożyć ten szablon na platformie Azure, zaloguj się do konta platformy Azure z poziomu terminalu programu Visual Studio Code.
W menu Terminal wybierz pozycję Nowy terminal. Okno terminalu zwykle otwiera się w dolnej połowie ekranu.
Domyślna powłoka to zazwyczaj pwsh, jak pokazano po prawej stronie okna terminalu.
Wybierz listę rozwijaną Uruchom profil, a następnie wybierz pozycję Azure Cloud Shell (PowerShell).
Zostanie otwarta nowa powłoka.
Logowanie się na platformie Azure przy użyciu programu Azure PowerShell
W terminalu programu Visual Studio Code zaloguj się do platformy Azure, uruchamiając następujące polecenie:
Connect-AzAccount
W przeglądarce, która zostanie otwarta, zaloguj się do konta platformy Azure.
Tworzenie jednostki usługi i klucza
Uruchom to polecenie interfejsu wiersza polecenia platformy Azure w terminalu programu Visual Studio Code, aby utworzyć jednostkę usługi:
az ad sp create-for-rbac --name ToyWebsitePipeline
Jeśli w interfejsie wiersza polecenia platformy Azure zostanie wyświetlony komunikat o błędzie informujący, że inna aplikacja ma taką samą nazwę wyświetlaną, oznacza to, że inna osoba korzystająca z dzierżawy firmy Microsoft Entra utworzyła jednostkę usługi o tej samej nazwie. Zmień wartość na
--name
coś unikatowego. Nie wpłynie to na sposób wykonywania kolejnych ćwiczeń.Spójrz na dane wyjściowe JSON z poprzedniego polecenia. Zawiera następujące właściwości:
appId
: identyfikator aplikacji jednostki usługi.password
: klucz jednostki usługi.tenant
: Identyfikator dzierżawy entra firmy Microsoft.
Skopiuj te wartości w bezpiecznym miejscu. Wkrótce będziesz ich używać.
Uruchom następujące polecenia programu Azure PowerShell w terminalu programu Visual Studio Code, aby utworzyć jednostkę usługi:
$servicePrincipal = New-AzADServicePrincipal ` -DisplayName ToyWebsitePipeline
Uruchom następujące polecenie, aby uzyskać klucz jednostki usługi:
$servicePrincipalKey = $servicePrincipal.PasswordCredentials.SecretText
Uruchom następujące polecenie, aby wyświetlić identyfikator aplikacji jednostki usługi, klucz i identyfikator dzierżawy firmy Microsoft Entra:
Write-Output "Service principal application ID: $($servicePrincipal.AppId)" Write-Output "Service principal key: $servicePrincipalKey" Write-Output "Your Azure AD tenant ID: $((Get-AzContext).Tenant.Id)"
Skopiuj wartości w bezpiecznym miejscu. Wkrótce będziesz ich używać.
Ostrzeżenie
Dane wyjściowe z poprzednich poleceń zawierają klucz jednostki usługi. Należy zachować ostrożność podczas uruchamiania tych poleceń. Na przykład nie uruchamiaj ich w środowisku, w którym ktoś może je wyświetlić.
Testowanie jednostki usługi
Po utworzeniu jednostki usługi możesz zalogować się przy użyciu poświadczeń, aby sprawdzić, czy została utworzona pomyślnie.
Uruchom to polecenie interfejsu wiersza polecenia platformy Azure w terminalu programu Visual Studio Code, aby zalogować się przy użyciu poświadczeń jednostki usługi. Zastąp symbole zastępcze wartościami skopiowanymi w poprzednim kroku.
az login --service-principal \ --username APPLICATION_ID \ --password PASSWORD \ --tenant TENANT_ID \ --allow-no-subscriptions
Zwróć uwagę, że argument jest dołączany
--allow-no-subscriptions
. Zwykle po uruchomieniuaz login
polecenia interfejs wiersza polecenia platformy Azure szuka subskrypcji platformy Azure, do których możesz uzyskać dostęp. Jednostka usługi nie otrzymała jeszcze dostępu do niczego, więc użyj argumentu--allow-no-subscriptions
, aby uniemożliwić interfejsowi wiersza polecenia platformy Azure sprawdzenie listy subskrypcji i wyświetlenie błędu.Sprawdź, czy dane wyjściowe z poprzedniego polecenia są obiektem JSON, który zawiera
user
właściwość z identyfikatorem aplikacji jednostki usługi. Te informacje wskazują, że jednostka usługi została pomyślnie zalogowana.Wyloguj się z konta jednostki usługi przy użyciu następującego polecenia:
az logout
Uruchom to polecenie programu Azure PowerShell w terminalu programu Visual Studio Code, aby bezpiecznie wyświetlić monit o poświadczenia jednostki usługi. Użyj identyfikatora aplikacji i klucza jednostki usługi z poprzedniego kroku odpowiednio dla nazwy użytkownika i hasła.
$credential = Get-Credential
Uruchom to polecenie programu Azure PowerShell w terminalu programu Visual Studio Code, aby zalogować się przy użyciu poświadczeń jednostki usługi.
Connect-AzAccount -ServicePrincipal ` -Credential $credential ` -Tenant TENANT_ID
Sprawdź, czy dane wyjściowe z poprzedniego polecenia zawierają
Account
właściwość z identyfikatorem aplikacji jednostki usługi i pustąSubscriptionName
wartością. Te informacje wskazują, że jednostka usługi została pomyślnie zalogowana.Wyloguj się z konta jednostki usługi przy użyciu następującego polecenia:
Logout-AzAccount
Teraz, gdy masz działającą jednostkę usługi, możesz przejść do następnego etapu: autoryzowania go w celu uzyskania dostępu do środowiska platformy Azure.