Udostępnij za pośrednictwem


Nawiązywanie połączenia z platformą Azure przy użyciu połączenia usługi Azure Resource Manager

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Możesz użyć połączenia usługi Azure Resource Manager, aby nawiązać połączenie z zasobami platformy Azure, takimi jak Azure Key Vault. Jeśli używasz połączenia usługi Resource Manager, możesz użyć potoku do wdrożenia w zasobie platformy Azure, takiego jak aplikacja usługi aplikacja systemu Azure Service bez uwierzytelniania za każdym razem.

Istnieje wiele opcji uwierzytelniania na potrzeby nawiązywania połączenia z platformą Azure przy użyciu połączeń usługi Azure Resource Manager:

  • Jednostka usługi z federacją tożsamości obciążenia
  • Jednostka usługi z wpisem tajnym
  • Tożsamość zarządzana przypisana przez system
  • Profil publiczny

Połączenie usługi używa jednostki usługi do uwierzytelniania za pomocą zasobów platformy Azure.

Tworzenie połączenia usługi Azure Resource Manager korzystającego z federacji tożsamości obciążenia

Federacja tożsamości obciążenia używa protokołu OpenID Connect (OIDC) do uwierzytelniania za pomocą chronionych zasobów firmy Microsoft entra bez używania wpisów tajnych. Możesz automatycznie utworzyć federację tożsamości obciążenia na potrzeby uwierzytelniania lub ręcznie go utworzyć.

Zalecamy użycie tego podejścia, jeśli w Twoim scenariuszu spełnione są wszystkie następujące warunki:

  • Masz rolę Właściciel dla subskrypcji platformy Azure.
  • Nie łączysz się z usługą Azure Stack ani środowiskami platformy Azure US Government .
  • Wszystkie zadania rozszerzeń witryny Marketplace, których używasz, są aktualizowane w celu obsługi federacji tożsamości obciążenia.

Tworzenie połączenia usługi z federacją tożsamości obciążenia (automatyczne)

Po wybraniu tej opcji usługa Azure DevOps automatycznie wysyła zapytania dotyczące subskrypcji, grupy zarządzania lub obszaru roboczego usługi Machine Learning, z którym chcesz nawiązać połączenie i tworzy federację tożsamości obciążenia na potrzeby uwierzytelniania.

  1. W projekcie usługi Azure DevOps przejdź do pozycji Połączenia usługi Ustawienia>projektu.

    Aby uzyskać więcej informacji, zobacz Otwieranie ustawień projektu.

  2. Wybierz pozycję Nowe połączenie z usługą, a następnie wybierz pozycję Azure Resource Manager i Dalej.

    Zrzut ekranu przedstawiający wybieranie wyboru usługi Azure Resource Manager.

  3. Wybierz pozycję Federacja tożsamości obciążenia (automatyczna) i Dalej.

    Zrzut ekranu przedstawiający wybór metody uwierzytelniania federacji tożsamości obciążenia (automatycznej).

  4. Wybierz poziom zakresu. Wybierz pozycję Subskrypcja, Grupa zarządzania lub Obszar roboczy usługi Machine Learning. Grupy zarządzania to kontenery, które ułatwiają zarządzanie dostępem, zasadami i zgodnością w wielu subskrypcjach. Obszar roboczy usługi Machine Learning to miejsce do tworzenia artefaktów uczenia maszynowego.

    • W polu Zakres subskrypcji wprowadź następujące parametry:

      Parametr Opis
      Subskrypcja Wymagany. Wybierz subskrypcję platformy Azure.
      Grupa zasobów: Wymagany. Wprowadź nazwę subskrypcji platformy Azure.
    • W obszarze Zakres grupy zarządzania wybierz grupę zarządzania platformy Azure.

    • W zakresie obszaru roboczego usługi Machine Learning wprowadź następujące parametry:

      Parametr Opis
      Subskrypcja Wymagany. Wybierz subskrypcję platformy Azure.
      Grupa zasobów Wymagany. Wybierz grupę zasobów zawierającą obszar roboczy.
      Obszar roboczy usługi Machine Learning Wymagany. Wybierz obszar roboczy usługi Azure Machine Learning.
  5. Wprowadź nazwę połączenia z usługą.

  6. Opcjonalnie wprowadź opis połączenia z usługą.

  7. Wybierz pozycję Udziel uprawnień dostępu do wszystkich potoków , aby zezwolić wszystkim potokom na korzystanie z tego połączenia z usługą. Jeśli nie wybierzesz tej opcji, musisz ręcznie udzielić dostępu do każdego potoku korzystającego z tego połączenia z usługą.

  8. Wybierz pozycję Zapisz.

Po utworzeniu nowego połączenia z usługą skopiuj nazwę połączenia i wklej ją w kodzie jako wartość .azureSubscription

Aby wdrożyć w określonym zasobie platformy Azure, zadanie wymaga dodatkowych danych dotyczących tego zasobu. Przejdź do zasobu w witrynie Azure Portal, a następnie skopiuj dane do kodu. Aby na przykład wdrożyć aplikację internetową, skopiuj nazwę aplikacji usługi aplikacja systemu Azure Service i wklej ją w kodzie jako wartość .WebAppName

Tworzenie połączenia z usługą przy użyciu federacji tożsamości obciążenia (ręczne)

Użyj tej opcji, aby ręcznie utworzyć połączenie usługi korzystające z istniejącej federacji tożsamości obciążenia na potrzeby uwierzytelniania.

  1. W projekcie usługi Azure DevOps przejdź do pozycji Połączenia usługi Ustawienia>projektu.

    Aby uzyskać więcej informacji, zobacz Otwieranie ustawień projektu.

  2. Wybierz pozycję Nowe połączenie z usługą, a następnie wybierz pozycję Azure Resource Manager i Dalej.

    Zrzut ekranu przedstawiający wybór metody uwierzytelniania federacji tożsamości obciążenia (ręcznej).

  3. Wybierz pozycję Federacja tożsamości obciążenia (ręcznie) i Dalej.

    Zrzut ekranu przedstawiający wybieranie typu połączenia usługi tożsamości obciążenia.

  4. W kroku 1: Podstawy:

    1. Wprowadź nazwę połączenia usługi
    2. Opcjonalnie wprowadź opis.
    3. Wybierz pozycję Udziel uprawnień dostępu do wszystkich potoków , aby zezwolić wszystkim potokom na korzystanie z tego połączenia z usługą. Jeśli nie wybierzesz tej opcji, musisz ręcznie udzielić dostępu do każdego potoku korzystającego z tego połączenia z usługą.
    4. Wybierz Dalej.
  5. W kroku 2. Szczegóły jednostki usługi:

    Krok 2. Szczegóły jednostki usługi zawierają następujące parametry. Możesz wprowadzić lub wybrać następujące parametry:

    Parametr Opis
    Emitenta Wymagany. Usługa DevOps automatycznie tworzy adres URL wystawcy jest automatycznie tworzony
    Identyfikator podmiotu Wymagany. Metodyka DevOps automatycznie tworzy identyfikator podmiotu.
    Środowisko Wymagany. Wybierz środowisko chmury do nawiązania połączenia. Jeśli wybierzesz usługę Azure Stack, wprowadź adres URL środowiska, który jest podobny do https://management.local.azurestack.external.
    1. Wybierz poziom zakresu. Wybierz pozycję Subskrypcja, Grupa zarządzania lub Obszar roboczy usługi Machine Learning. Grupy zarządzania to kontenery, które ułatwiają zarządzanie dostępem, zasadami i zgodnością w wielu subskrypcjach. Obszar roboczy usługi Machine Learning to miejsce do tworzenia artefaktów uczenia maszynowego.

      • W polu Zakres subskrypcji wprowadź następujące parametry:

        Parametr Opis
        Identyfikator subskrypcji Wymagany. Wprowadź identyfikator subskrypcji platformy Azure.
        Nazwa subskrypcji Wymagany. Wprowadź nazwę subskrypcji platformy Azure.
      • W obszarze Zakres grupy zarządzania wprowadź następujące parametry:

        Parametr Opis
        Identyfikator grupy zarządzania Wymagany. Wprowadź identyfikator grupy zarządzania platformy Azure.
        Nazwa grupy zarządzania Wymagany. Wprowadź nazwę grupy zarządzania platformy Azure.
      • W zakresie obszaru roboczego usługi Machine Learning wprowadź następujące parametry:

        Parametr Opis
        Identyfikator subskrypcji Wymagany. Wprowadź identyfikator subskrypcji platformy Azure.
        Nazwa subskrypcji Wymagany. Wprowadź nazwę subskrypcji platformy Azure.
        Grupa zasobów Wymagany. Wybierz grupę zasobów zawierającą obszar roboczy.
        Nazwa obszaru roboczego uczenia maszynowego Wymagany. Wprowadź nazwę istniejącego obszaru roboczego usługi Azure Machine Learning.
        Lokalizacja obszaru roboczego uczenia maszynowego Wymagany. Wprowadź lokalizację istniejącego obszaru roboczego usługi Azure Machine Learning.
    2. W sekcji Uwierzytelnianie wprowadź lub wybierz następujące parametry:

      Parametr Opis
      Identyfikator jednostki usługi Wymagany. Wprowadź identyfikator jednostki usługi.
      Identyfikator dzierżawy Wymagany. Wprowadź identyfikator dzierżawcy.
    3. W sekcji Szczegóły wprowadź następujące parametry:

      Parametr Opis
      Nazwa połączenia Wymagany. Nazwa używana do odwoływania się do tego połączenia usługi we właściwościach zadania. Nie jest to nazwa subskrypcji platformy Azure.
      Opis Opcjonalny. Wprowadź opis połączenia z usługą.
    4. W sekcji Zabezpieczenia wybierz pozycję Udziel uprawnień dostępu do wszystkich potoków, aby zezwolić wszystkim potokom na korzystanie z tego połączenia z usługą. Jeśli nie wybierzesz tej opcji, musisz ręcznie udzielić dostępu do każdego potoku korzystającego z tego połączenia z usługą.

    5. Wybierz pozycję Weryfikuj i zapisz , aby zweryfikować i utworzyć połączenie usługi.

Po utworzeniu nowego połączenia z usługą skopiuj nazwę połączenia i wklej ją w kodzie jako wartość .azureSubscription

Aby wdrożyć w określonym zasobie platformy Azure, zadanie wymaga dodatkowych danych dotyczących tego zasobu. Przejdź do zasobu w witrynie Azure Portal, a następnie skopiuj dane do kodu. Aby na przykład wdrożyć aplikację internetową, skopiuj nazwę aplikacji usługi aplikacja systemu Azure Service i wklej ją w kodzie jako wartość .WebAppName

Konwertowanie istniejącego połączenia usługi Azure Resource Manager w celu korzystania z federacji tożsamości obciążenia

Możesz szybko przekonwertować istniejące połączenie usługi Azure Resource Manager, aby użyć federacji tożsamości obciążenia do uwierzytelniania zamiast jednostki usługi. Jeśli połączenie usługi spełnia następujące wymagania, możesz użyć narzędzia konwersji połączenia z usługą w usłudze Azure DevOps:

  • Usługa Azure DevOps pierwotnie utworzyła połączenie z usługą. Jeśli ręcznie utworzysz połączenie z usługą, nie możesz przekonwertować połączenia z usługą przy użyciu narzędzia konwersji połączenia z usługą, ponieważ usługa Azure DevOps nie ma uprawnień do modyfikowania własnych poświadczeń.
  • Tylko jeden projekt używa połączenia z usługą. Nie można konwertować połączeń między usługa projektów.

Aby przekonwertować połączenie usługi:

  1. W projekcie usługi Azure DevOps przejdź do pozycji Połączenia usługi Ustawienia>projektu.

    Aby uzyskać więcej informacji, zobacz Otwieranie ustawień projektu.

  2. Wybierz połączenie z usługą, które chcesz przekonwertować, aby używać tożsamości obciążenia.

  3. Wybierz pozycję Konwertuj.

    Zrzut ekranu przedstawiający wybieranie konwersji dla poświadczeń federacyjnych.

    Jeśli masz istniejące poświadczenia jednostki usługi z wygasłym wpisem tajnym, zobaczysz inną opcję konwersji.

    Zrzut ekranu przedstawiający opcję konwersji na używanie poświadczeń federacyjnych w przypadku wygaśnięcia certyfikatu.

  4. Wybierz ponownie pozycję Konwertuj , aby potwierdzić, że chcesz utworzyć nowe połączenie usługi.

    Konwersja może potrwać kilka minut. Jeśli chcesz przywrócić połączenie, musisz przywrócić je w ciągu siedmiu dni.

Konwertowanie wielu połączeń usługi Azure Resource Manager za pomocą skryptu

Użyj skryptu, aby zaktualizować wiele połączeń usług jednocześnie, aby teraz używać federacji tożsamości obciążenia do uwierzytelniania.

Ten przykładowy skrypt programu PowerShell wymaga dwóch parametrów: organizacja usługi Azure DevOps (przykład: https://dev.azure.com/fabrikam-tailspin) i projekt Usługi Azure DevOps (przykład: Space game web agent). Następnie skrypt pobiera skojarzone połączenia usług dla projektu i organizacji usługi Azure DevOps.

Podczas konwertowania połączeń usług w celu używania federacji tożsamości obciążenia zostanie wyświetlony monit o potwierdzenie aktualizacji dla każdego połączenia, które nie jest jeszcze używane. Po potwierdzeniu skrypt aktualizuje te połączenia usługi za pośrednictwem interfejsu API REST usługi Azure DevOps w celu korzystania z federacji tożsamości obciążenia.

Skrypt wymaga uruchomienia programu PowerShell 7.3 lub nowszego oraz interfejsu wiersza polecenia platformy Azure. Zapisz skrypt w .ps1 pliku i uruchom go przy użyciu programu PowerShell 7.

#!/usr/bin/env pwsh
<# 
.SYNOPSIS 
    Convert multiple Azure Resource Manager service connection(s) to use Workload identity federation

.LINK
    https://aka.ms/azdo-rm-workload-identity-conversion

.EXAMPLE
    ./convert_azurerm_service_connection_to_oidc_simple.ps1 -Project <project> -OrganizationUrl https://dev.azure.com/<organization>
#> 

#Requires -Version 7.3

param ( 
    [parameter(Mandatory=$true,HelpMessage="Name of the Azure DevOps Project")]
    [string]
    [ValidateNotNullOrEmpty()]
    $Project,

    [parameter(Mandatory=$true,HelpMessage="Url of the Azure DevOps Organization")]
    [uri]
    [ValidateNotNullOrEmpty()]
    $OrganizationUrl
) 
$apiVersion = "7.1"
$PSNativeCommandArgumentPassing = "Standard" 

#-----------------------------------------------------------
# Log in to Azure
$azdoResource = "499b84ac-1321-427f-aa17-267ca6975798" # application id of Azure DevOps 
az login --allow-no-subscriptions --scope ${azdoResource}/.default
$OrganizationUrl = $OrganizationUrl.ToString().Trim('/')

#-----------------------------------------------------------
# Retrieve the service connection
$getApiUrl = "${OrganizationUrl}/${Project}/_apis/serviceendpoint/endpoints?authSchemes=ServicePrincipal&type=azurerm&includeFailed=false&includeDetails=true&api-version=${apiVersion}"
az rest --resource $azdoResource -u "${getApiUrl} " -m GET --query "sort_by(value[?authorization.scheme=='ServicePrincipal' && data.creationMode=='Automatic' && !(isShared && serviceEndpointProjectReferences[0].projectReference.name!='${Project}')],&name)" -o json `
        | Tee-Object -Variable rawResponse | ConvertFrom-Json | Tee-Object -Variable serviceEndpoints | Format-List | Out-String | Write-Debug
if (!$serviceEndpoints -or ($serviceEndpoints.count-eq 0)) {
    Write-Warning "No convertible service connections found"
    exit 1
}

foreach ($serviceEndpoint in $serviceEndpoints) {
    # Prompt user to confirm conversion
    $choices = @(
        [System.Management.Automation.Host.ChoiceDescription]::new("&Convert", "Converting service connection '$($serviceEndpoint.name)'...")
        [System.Management.Automation.Host.ChoiceDescription]::new("&Skip", "Skipping service connection '$($serviceEndpoint.name)'...")
        [System.Management.Automation.Host.ChoiceDescription]::new("&Exit", "Exit script")
    )
    $prompt = $serviceEndpoint.isShared ? "Convert shared service connection '$($serviceEndpoint.name)'?" : "Convert service connection '$($serviceEndpoint.name)'?"
    $decision = $Host.UI.PromptForChoice([string]::Empty, $prompt, $choices, $serviceEndpoint.isShared ? 1 : 0)

    if ($decision -eq 0) {

        Write-Host "$($choices[$decision].HelpMessage)"
    } elseif ($decision -eq 1) {
        Write-Host "$($PSStyle.Formatting.Warning)$($choices[$decision].HelpMessage)$($PSStyle.Reset)"
        continue 
    } elseif ($decision -ge 2) {
        Write-Host "$($PSStyle.Formatting.Warning)$($choices[$decision].HelpMessage)$($PSStyle.Reset)"
        exit 
    }

    # Prepare request body
    $serviceEndpoint.authorization.scheme = "WorkloadIdentityFederation"
    $serviceEndpoint.data.PSObject.Properties.Remove('revertSchemeDeadline')
    $serviceEndpoint | ConvertTo-Json -Depth 4 | Write-Debug
    $serviceEndpoint | ConvertTo-Json -Depth 4 -Compress | Set-Variable serviceEndpointRequest
    $putApiUrl = "${OrganizationUrl}/${Project}/_apis/serviceendpoint/endpoints/$($serviceEndpoint.id)?operation=ConvertAuthenticationScheme&api-version=${apiVersion}"
    # Convert service connection
    az rest -u "${putApiUrl} " -m PUT -b $serviceEndpointRequest --headers content-type=application/json --resource $azdoResource -o json `
            | ConvertFrom-Json | Set-Variable updatedServiceEndpoint

    $updatedServiceEndpoint | ConvertTo-Json -Depth 4 | Write-Debug
    if (!$updatedServiceEndpoint) {
        Write-Debug "Empty response"
        Write-Error "Failed to convert service connection '$($serviceEndpoint.name)'"
        exit 1
    }
    Write-Host "Successfully converted service connection '$($serviceEndpoint.name)'"
}

Przywracanie istniejącego połączenia usługi Azure Resource Manager, które używa klucza tajnego jednostki usługi

Możesz przywrócić przekonwertowane automatyczne połączenie usługi z jego wpisem tajnym przez siedem dni. Po siedmiu dniach ręcznie utwórz nowy wpis tajny.

Jeśli ręcznie utworzysz i przekonwertujesz połączenie z usługą, nie możesz przywrócić połączenia z usługą przy użyciu narzędzia konwersji połączenia z usługą, ponieważ usługa Azure DevOps nie ma uprawnień do modyfikowania własnych poświadczeń.

Aby przywrócić połączenie z usługą:

  1. W projekcie usługi Azure DevOps przejdź do pozycji Połączenia usługi Pipelines>Service.

  2. Wybierz istniejące połączenie usługi, aby przywrócić.

  3. Wybierz pozycję Przywróć konwersję do oryginalnego schematu.

    Zrzut ekranu przedstawiający wybór przywracania dla poświadczeń federacyjnych.

  4. Wybierz ponownie pozycję Przywróć , aby potwierdzić wybór.

Tworzenie połączenia usługi Azure Resource Manager korzystającego z wpisu tajnego jednostki usługi

Połączenie usługi można skonfigurować do uwierzytelniania za pomocą zasobów platformy Azure przy użyciu klucza tajnego jednostki usługi. Takie podejście jest przydatne, gdy trzeba ograniczyć uprawnienia dla zasobów platformy Azure, do których użytkownicy uzyskują dostęp za pośrednictwem połączenia z usługą.

Możesz skonfigurować połączenie z usługą ręcznie lub automatycznie. Najlepszym rozwiązaniem jest użycie podejścia automatycznego, jeśli zalogowałeś się jako właściciel organizacji usługi Azure Pipelines i subskrypcji platformy Azure, a nie musisz dodatkowo ograniczać uprawnień do zasobów platformy Azure, do których użytkownicy uzyskują dostęp za pośrednictwem połączenia z usługą.

Zalecamy użycie tego podejścia, jeśli w Twoim scenariuszu spełnione są wszystkie następujące warunki:

  • Zalogowałeś się jako właściciel organizacji usługi Azure Pipelines i subskrypcji platformy Azure.
  • Nie musisz jeszcze bardziej ograniczać uprawnień dla zasobów platformy Azure, do których użytkownicy uzyskują dostęp za pośrednictwem połączenia z usługą.
  • Nie łączysz się z usługą Azure Stack ani z chmurą Azure Government.
  • Nie nawiązujesz połączenia z usługi Azure DevOps Server 2019 lub starszych wersji serwera Team Foundation Server.

Aby utworzyć połączenie z usługą:

  1. W projekcie usługi Azure DevOps przejdź do pozycji Połączenia usługi Ustawienia>projektu.

    Aby uzyskać więcej informacji, zobacz Otwieranie ustawień projektu.

  2. Wybierz pozycję Nowe połączenie z usługą, a następnie wybierz pozycję Azure Resource Manager i Dalej.

    Zrzut ekranu przedstawiający wybór usługi Azure Resource Manager.

  3. Wybierz pozycję Jednostka usługi (automatyczna) i Dalej.

    Zrzut ekranu przedstawiający wybór metody uwierzytelniania jednostki usługi (automatycznej).

  4. Wybierz poziom Zakresu. Wybierz pozycję Subskrypcja, Grupa zarządzania lub Obszar roboczy usługi Machine Learning. Grupy zarządzania to kontenery, które ułatwiają zarządzanie dostępem, zasadami i zgodnością w wielu subskrypcjach. Obszar roboczy usługi Machine Learning to miejsce do tworzenia artefaktów uczenia maszynowego.

    • W polu Zakres subskrypcji wprowadź następujące parametry:

      Parametr Opis
      Identyfikator subskrypcji Wymagany. Wprowadź identyfikator subskrypcji platformy Azure.
      Nazwa subskrypcji Wymagany. Wprowadź nazwę subskrypcji platformy Azure.
    • W obszarze Zakres grupy zarządzania wprowadź następujące parametry, wybierz grupę zarządzania platformy Azure.

    • W zakresie obszaru roboczego usługi Machine Learning wprowadź następujące parametry:

      Parametr Opis
      Identyfikator subskrypcji Wymagany. Wprowadź identyfikator subskrypcji platformy Azure.
      Nazwa subskrypcji Wymagany. Wprowadź nazwę subskrypcji platformy Azure.
      Grupa zasobów Wymagany. Wybierz grupę zasobów zawierającą obszar roboczy.
      Nazwa obszaru roboczego uczenia maszynowego Wymagany. Wprowadź nazwę istniejącego obszaru roboczego usługi Azure Machine Learning.
      Lokalizacja obszaru roboczego uczenia maszynowego Wymagany. Wprowadź lokalizację istniejącego obszaru roboczego usługi Azure Machine Learning.
  5. Wprowadź nazwę połączenia z usługą.

  6. Opcjonalnie wprowadź opis połączenia z usługą.

  7. Wybierz pozycję Udziel uprawnień dostępu do wszystkich potoków , aby zezwolić wszystkim potokom na korzystanie z tego połączenia z usługą. Jeśli nie wybierzesz tej opcji, musisz ręcznie udzielić dostępu do każdego potoku korzystającego z tego połączenia z usługą.

  8. Wybierz pozycję Zapisz.

Po utworzeniu nowego połączenia z usługą:

  • Jeśli używasz edytora klasycznego, wybierz nazwę połączenia przypisaną w ustawieniu subskrypcji platformy Azure potoku.
  • Jeśli używasz pliku YAML, skopiuj nazwę połączenia do kodu jako wartość .azureSubscription

Aby wdrożyć w określonym zasobie platformy Azure, dodaj więcej informacji o zasobie do zadania:

  • Jeśli używasz edytora klasycznego, wybierz dane, które chcesz dodać do zadania. Na przykład wybierz nazwę usługi App Service.
  • Jeśli używasz pliku YAML, przejdź do zasobu w witrynie Azure Portal. Skopiuj potrzebne dane i wklej je do kodu zadania. Aby na przykład wdrożyć aplikację internetową, skopiuj nazwę aplikacji usługi App Service i wklej ją jako wartość WebAppName w zadaniu YAML zadania.

Uwaga

Gdy zastosujesz to podejście, usługa Azure DevOps łączy się z identyfikatorem Microsoft Entra ID i tworzy rejestrację aplikacji z wpisem tajnym, który jest ważny przez trzy miesiące. Po wygaśnięciu połączenia z usługą identyfikator Entra firmy Microsoft wyświetla następujący monit: certyfikat lub wpis tajny wkrótce wygasa. Utwórz nowy. W tym scenariuszu należy odświeżyć połączenie usługi.

Aby odświeżyć połączenie z usługą, w portalu usługi Azure DevOps edytuj połączenie, a następnie wybierz pozycję Weryfikuj. Po zapisaniu edycji połączenie z usługą jest ważne przez kolejne trzy miesiące.

Zalecamy używanie federacji tożsamości obciążenia zamiast tworzenia wpisu tajnego. Jeśli używasz federacji tożsamości obciążenia, nie musisz obracać wpisów tajnych, a rejestracja aplikacji zachowuje zamierzony cel. Aby rozpocząć korzystanie z federacji tożsamości obciążenia, przejdź do strony szczegółów połączenia usługi i wybierz pozycję Konwertuj. Połączenie z usługą jest konwertowane w celu używania federacji tożsamości obciążenia zamiast wpisu tajnego. Aby uzyskać więcej informacji, zobacz Konwertowanie istniejącego połączenia usługi Azure Resource Manager w celu korzystania z federacji tożsamości obciążenia.

Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z połączeniem usługi Azure Resource Manager.

Jeśli masz problemy z użyciem tej metody (np. brak subskrypcji wyświetlanych na liście rozwijanej) lub jeśli chcesz ograniczyć uprawnienia użytkowników, możesz zamiast tego użyć jednostki usługi lub maszyny wirtualnej z tożsamością zarządzaną.

Tworzenie połączenia usługi Azure Resource Manager korzystającego z istniejącej jednostki usługi

Jeśli chcesz użyć wstępnie zdefiniowanego zestawu uprawnień dostępu i nie masz jeszcze zdefiniowanej jednostki usługi w tym celu, wykonaj jedną z tych samouczków, aby utworzyć nową jednostkę usługi:

Aby utworzyć połączenie usługi korzystające z istniejącej jednostki usługi:

  1. W projekcie usługi Azure DevOps przejdź do pozycji Połączenia usługi Ustawienia>projektu.

    Aby uzyskać więcej informacji, zobacz Otwieranie ustawień projektu.

  2. Wybierz pozycję Nowe połączenie z usługą, a następnie wybierz pozycję Azure Resource Manager i Dalej.

    Zrzut ekranu przedstawiający wybór usługi Azure Resource Manager.

  3. Wybierz pozycję Jednostka usługi (ręcznie) i Dalej.

    Zrzut ekranu przedstawiający wybór metody uwierzytelniania jednostki usługi (ręcznej).

  4. W oknie dialogowym Nowe połączenie z usługą platformy Azure wybierz pozycję Środowisko. Jeśli wybierzesz usługę Azure Stack, wprowadź adres URL środowiska, który jest podobny do https://management.local.azurestack.external.

  5. Wybierz poziom zakresu. Wybierz pozycję Subskrypcja, Grupa zarządzania lub Obszar roboczy usługi Machine Learning. Grupy zarządzania to kontenery, które ułatwiają zarządzanie dostępem, zasadami i zgodnością w wielu subskrypcjach. Obszar roboczy usługi Machine Learning to miejsce do tworzenia artefaktów uczenia maszynowego.

    • W polu Zakres subskrypcji wprowadź następujące parametry:

      Parametr Opis
      Identyfikator subskrypcji Wymagany. Wprowadź identyfikator subskrypcji platformy Azure.
      Nazwa subskrypcji Wymagany. Wprowadź nazwę subskrypcji platformy Azure.
    • W obszarze Zakres grupy zarządzania wprowadź następujące parametry:

      Parametr Opis
      Identyfikator grupy zarządzania Wymagany. Wprowadź identyfikator grupy zarządzania platformy Azure.
      Nazwa grupy zarządzania Wymagany. Wprowadź nazwę grupy zarządzania platformy Azure.
    • W zakresie obszaru roboczego usługi Machine Learning wprowadź następujące parametry:

      Parametr Opis
      Identyfikator subskrypcji Wymagany. Wprowadź identyfikator subskrypcji platformy Azure.
      Nazwa subskrypcji Wymagany. Wprowadź nazwę subskrypcji platformy Azure.
      Grupa zasobów Wymagany. Wybierz grupę zasobów zawierającą obszar roboczy.
      Nazwa obszaru roboczego uczenia maszynowego Wymagany. Wprowadź nazwę istniejącego obszaru roboczego usługi Azure Machine Learning.
      Lokalizacja obszaru roboczego uczenia maszynowego Wymagany. Wprowadź lokalizację istniejącego obszaru roboczego usługi Azure Machine Learning.
  6. W sekcji Uwierzytelnianie wprowadź lub wybierz następujące parametry:

    Parametr Opis
    Identyfikator jednostki usługi Wymagany. Wprowadź identyfikator jednostki usługi.
    Poświadczeń Wybierz pozycję Klucz jednostki usługi lub certyfikat. W przypadku wybrania klucza jednostki usługi wprowadź klucz (hasło). W przypadku wybrania opcji Certyfikat wprowadź certyfikat.
    Identyfikator dzierżawy Wymagany. Wprowadź identyfikator dzierżawcy.
    Weryfikacja Wybierz, aby zweryfikować wprowadzone ustawienia.
  7. W sekcji Szczegóły wprowadź następujące parametry:

    Parametr Opis
    Nazwa połączenia Wymagany. Nazwa używana do odwoływania się do tego połączenia usługi we właściwościach zadania. Nie jest to nazwa subskrypcji platformy Azure.
    Opis Opcjonalny. Wprowadź opis połączenia z usługą.
    Bezpieczeństwo Wybierz pozycję Udziel uprawnień dostępu do wszystkich potoków , aby zezwolić wszystkim potokom na korzystanie z tego połączenia z usługą. Jeśli nie wybierzesz tej opcji, musisz ręcznie udzielić dostępu do każdego potoku korzystającego z tego połączenia z usługą.
  8. Wybierz pozycję Weryfikuj i zapisz , aby zweryfikować i utworzyć połączenie usługi.

Po utworzeniu nowego połączenia z usługą:

  • Jeśli używasz połączenia z usługą w interfejsie użytkownika, wybierz nazwę połączenia przypisaną w ustawieniu subskrypcji platformy Azure potoku.
  • Jeśli używasz połączenia usługi w pliku YAML, skopiuj nazwę połączenia i wklej ją w kodzie jako wartość .azureSubscription

W razie potrzeby zmodyfikuj jednostkę usługi, aby uwidocznić odpowiednie uprawnienia.

Aby uzyskać więcej informacji na temat uwierzytelniania przy użyciu jednostki usługi, zobacz Używanie kontroli dostępu opartej na rolach w celu zarządzania dostępem do zasobów subskrypcji platformy Azure lub wpis w blogu Automatyzowanie wdrożenia grupy zasobów platformy Azure przy użyciu jednostki usługi w programie Visual Studio.

Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z połączeniami usługi Azure Resource Manager.

Tworzenie połączenia usługi Azure Resource Manager z maszyną wirtualną korzystającą z tożsamości zarządzanej

Uwaga

Aby użyć tożsamości zarządzanej do uwierzytelniania, musisz użyć własnego agenta na maszynie wirtualnej platformy Azure.

Możesz skonfigurować własnych agentów na maszynach wirtualnych platformy Azure, aby używać tożsamości zarządzanej platformy Azure w usłudze Microsoft Entra ID. W tym scenariuszu używasz przypisanej przez system tożsamości zarządzanej (jednostki usługi), aby udzielić agentom dostępu do dowolnego zasobu platformy Azure obsługującego identyfikator Entra firmy Microsoft, takiego jak wystąpienie usługi Azure Key Vault.

  1. W projekcie usługi Azure DevOps przejdź do pozycji Połączenia usługi Ustawienia>projektu.

    Aby uzyskać więcej informacji, zobacz Otwieranie ustawień projektu.

  2. Wybierz pozycję Nowe połączenie z usługą, a następnie wybierz pozycję Azure Resource Manager i Dalej.

    Zrzut ekranu przedstawiający wybieranie typu połączenia z usługą.

  3. Wybierz pozycję Tożsamość zarządzana dla metody uwierzytelniania.

    Zrzut ekranu przedstawiający wybór metody uwierzytelniania tożsamości usługi zarządzanej.

  4. W polu Środowisko wybierz nazwę środowiska (opcje chmury platformy Azure, usługi Azure Stack lub chmury dla instytucji rządowych).

  5. Wybierz poziom Zakresu. Wybierz pozycję Subskrypcja, Grupa zarządzania lub Obszar roboczy usługi Machine Learning. Grupy zarządzania to kontenery, które ułatwiają zarządzanie dostępem, zasadami i zgodnością w wielu subskrypcjach. Obszar roboczy usługi Machine Learning to miejsce do tworzenia artefaktów uczenia maszynowego.

    • W polu Zakres subskrypcji wprowadź następujące parametry:

      Parametr Opis
      Identyfikator subskrypcji Wymagany. Wprowadź identyfikator subskrypcji platformy Azure.
      Nazwa subskrypcji Wymagany. Wprowadź nazwę subskrypcji platformy Azure.
    • W obszarze Zakres grupy zarządzania wprowadź następujące parametry:

      Parametr Opis
      Identyfikator grupy zarządzania Wymagany. Wprowadź identyfikator grupy zarządzania platformy Azure.
      Nazwa grupy zarządzania Wymagany. Wprowadź nazwę grupy zarządzania platformy Azure.
    • W zakresie obszaru roboczego usługi Machine Learning wprowadź następujące parametry:

      Parametr Opis
      Identyfikator subskrypcji Wymagany. Wprowadź identyfikator subskrypcji platformy Azure.
      Nazwa subskrypcji Wymagany. Wprowadź nazwę subskrypcji platformy Azure.
      Grupa zasobów Wymagany. Wybierz grupę zasobów zawierającą obszar roboczy.
      Nazwa obszaru roboczego uczenia maszynowego Wymagany. Wprowadź nazwę istniejącego obszaru roboczego usługi Azure Machine Learning.
      Lokalizacja obszaru roboczego uczenia maszynowego Wymagany. Wprowadź lokalizację istniejącego obszaru roboczego usługi Azure Machine Learning.
  6. Wprowadź identyfikator dzierżawy.

  7. Wprowadź nazwę połączenia z usługą.

  8. Opcjonalnie wprowadź opis połączenia z usługą.

  9. Wybierz pozycję Udziel uprawnień dostępu do wszystkich potoków , aby zezwolić wszystkim potokom na korzystanie z tego połączenia z usługą. Jeśli nie wybierzesz tej opcji, musisz ręcznie udzielić dostępu do każdego potoku korzystającego z tego połączenia z usługą.

  10. Wybierz pozycję Zapisz.

  11. Po utworzeniu nowego połączenia z usługą:

    • Jeśli używasz połączenia z usługą w interfejsie użytkownika, wybierz nazwę połączenia przypisaną w ustawieniu subskrypcji platformy Azure potoku.
    • Jeśli używasz połączenia usługi w pliku YAML, skopiuj nazwę połączenia do kodu jako wartość .azureSubscription
  12. Upewnij się, że maszyna wirtualna (agent) ma odpowiednie uprawnienia.

    Jeśli na przykład kod musi wywołać usługę Azure Resource Manager, przypisz maszynę wirtualną odpowiednią rolę przy użyciu kontroli dostępu opartej na rolach (RBAC) w usłudze Microsoft Entra ID.

    Aby uzyskać więcej informacji, zobacz Jak używać tożsamości zarządzanych dla zasobów platformy Azure? i Użyj kontroli dostępu opartej na rolach, aby zarządzać dostępem do zasobów subskrypcji platformy Azure.

Aby uzyskać więcej informacji na temat procesu, zobacz Rozwiązywanie problemów z połączeniami usługi Azure Resource Manager.

Tworzenie połączenia z usługą przy użyciu profilu publikowania

Połączenie usługi można utworzyć przy użyciu profilu publikowania. Profil publikowania umożliwia utworzenie połączenia usługi z usługą aplikacja systemu Azure Service.

  1. W projekcie usługi Azure DevOps przejdź do pozycji Połączenia usługi Ustawienia>projektu.

    Aby uzyskać więcej informacji, zobacz Otwieranie ustawień projektu.

  2. Wybierz pozycję Nowe połączenie z usługą, a następnie wybierz pozycję Azure Resource Manager i Dalej.

    Zrzut ekranu przedstawiający wybór usługi Azure Resource Manager.

  3. Wybierz pozycję Publikuj profil dla metody uwierzytelniania, a następnie wybierz pozycję Dalej.

    Zrzut ekranu przedstawiający wybór metody uwierzytelniania profilu publikowania.

  4. Wprowadź następujące parametry:

    Parametr Opis
    Subskrypcja Wymagany. Wybierz istniejącą subskrypcję platformy Azure. Jeśli nie są wyświetlane żadne subskrypcje lub wystąpienia platformy Azure, zobacz Rozwiązywanie problemów z połączeniami usługi Azure Resource Manager.
    WebApp Wymagany. Wprowadź nazwę aplikacji usługi aplikacja systemu Azure Service.
    Nazwa połączenia z usługą Wymagany. Nazwa używana do odwoływania się do tego połączenia usługi we właściwościach zadania. Nie jest to nazwa subskrypcji platformy Azure.
    Opis Opcjonalny. Opis połączenia z usługą.
  5. Wybierz pozycję Udziel uprawnień dostępu do wszystkich potoków , aby zezwolić wszystkim potokom na korzystanie z tego połączenia z usługą. Jeśli nie wybierzesz tej opcji, musisz ręcznie udzielić dostępu do każdego potoku korzystającego z tego połączenia z usługą.

  6. Wybierz pozycję Zapisz.

Po utworzeniu nowego połączenia z usługą:

  • Jeśli używasz połączenia z usługą w interfejsie użytkownika, wybierz nazwę połączenia przypisaną w ustawieniu subskrypcji platformy Azure potoku.
  • Jeśli używasz połączenia usługi w pliku YAML, skopiuj nazwę połączenia i wklej ją w kodzie jako wartość .azureSubscription

Łączenie z chmurą Platformy Azure Government

Aby uzyskać informacje na temat nawiązywania połączenia z chmurą platformy Azure Government, zobacz Łączenie się z usługą Azure Pipelines (Azure Government Cloud).

Nawiązywanie połączenia z usługą Azure Stack

Aby uzyskać informacje na temat nawiązywania połączenia z usługą Azure Stack, zobacz następujące artykuły:

Pomoc i obsługa techniczna