Ćwiczenie — tworzenie jednostki usługi i klucza

Ukończone

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.

  1. 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.

    Zrzut ekranu przedstawiający okno terminalu programu Visual Studio Code, w którym program pwsh jest wyświetlany jako opcja powłoki.

  2. Wybierz listę rozwijaną Uruchom profil, a następnie wybierz pozycję Azure Cloud Shell (Bash).

    Zrzut ekranu przedstawiający okno terminalu programu Visual Studio Code. Zostanie wyświetlona lista rozwijana powłoki terminalu i element menu usługi Azure Cloud Shell (Bash).

    Zostanie otwarta nowa powłoka.

Logowanie się do platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure

  1. W terminalu programu Visual Studio Code zaloguj się do platformy Azure, uruchamiając następujące polecenie:

    az login
    
  2. 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.

  1. 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.

    Zrzut ekranu przedstawiający okno terminalu programu Visual Studio Code, w którym program pwsh jest wyświetlany jako opcja powłoki.

  2. Wybierz listę rozwijaną Uruchom profil, a następnie wybierz pozycję Azure Cloud Shell (PowerShell).

    Zrzut ekranu przedstawiający okno terminalu programu Visual Studio Code. Zostanie wyświetlona lista rozwijana powłoki terminalu i element menu usługi Azure Cloud Shell (PowerShell).

    Zostanie otwarta nowa powłoka.

Logowanie się na platformie Azure przy użyciu programu Azure PowerShell

  1. W terminalu programu Visual Studio Code zaloguj się do platformy Azure, uruchamiając następujące polecenie:

    Connect-AzAccount
    
  2. W przeglądarce, która zostanie otwarta, zaloguj się do konta platformy Azure.

Tworzenie jednostki usługi i klucza

  1. 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ń.

  2. 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ć.

  1. Uruchom następujące polecenia programu Azure PowerShell w terminalu programu Visual Studio Code, aby utworzyć jednostkę usługi:

    $servicePrincipal = New-AzADServicePrincipal `
      -DisplayName ToyWebsitePipeline
    
  2. Uruchom następujące polecenie, aby uzyskać klucz jednostki usługi:

    $servicePrincipalKey = $servicePrincipal.PasswordCredentials.SecretText
    
  3. 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.

  1. 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 uruchomieniu az 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.

  2. 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.

  3. Wyloguj się z konta jednostki usługi przy użyciu następującego polecenia:

    az logout
    
  1. 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
    
  2. 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
    
  3. 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.

  4. 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.