Rozwiązywanie problemów z połączeniami usługi Azure Resource Manager

Usługi Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

W tym artykule przedstawiono typowe scenariusze rozwiązywania problemów, które ułatwiają rozwiązywanie problemów, które mogą wystąpić podczas tworzenia połączenia usługi Azure Resource Manager (ARM). Zobacz Zarządzanie połączeniami usług , aby dowiedzieć się, jak tworzyć, edytować, zabezpieczać i włączać połączenia usług. Zobacz Rozwiązywanie problemów z połączeniem usługi tożsamości obciążenia w Azure Resource Manager, aby dowiedzieć się, jak naprawić problemy związane z tożsamością obciążenia.

Ważne

Administrator połączenia z usługą lub administrator Project może wyłączyć połączenia usługi Azure Resource Manager. Azure Pipelines może również automatycznie wyłączyć połączenie po upływie 100 dni braku aktywności. Wyłączone połączenie może mieć wpływ na przebiegi potoku, dlatego przed rozwiązaniem problemów z uwierzytelnianiem, rotacją wpisów tajnych lub ponownym utworzeniem połączenia sprawdź jego stan włączony.

W tym artykule użyto terminów "dzierżawa" i "katalog" w sposób, który może się nakładać. Dzierżawca to dedykowane, izolowane wystąpienie Microsoft Entra ID, które organizacja otrzymuje i zarządza wszystkimi tożsamościami i kontrolą dostępu do usług w chmurze. Katalog jest kontenerem w ramach tego tenanta, zawierającym takie obiekty jak użytkownicy, grupy i aplikacje używane do zarządzania dostępem do zasobów.

Ważne

Jeśli połączenie usługi Azure Resource Manager używa przestarzałego wystawcy Azure DevOps na potrzeby federacji tożsamości obciążeń, Azure DevOps wyświetla ostrzeżenie dotyczące połączenia usługi lub w środowiskach związanych z potokami korzystającymi z tego połączenia. To ostrzeżenie oznacza, że połączenie z usługą należy przekonwertować na wystawcę Microsoft Entra. To wycofanie z użycia dotyczy tylko obsługiwanych połączeń z usługami w publicznej chmurze Azure, które korzystają z jednotenantowych aplikacji Microsoft Entra lub tożsamości zarządzanych. Połączenia usług ukierunkowane na chmury niepubliczne oraz połączenia usług korzystające z aplikacji wielodostępnych nie są objęte tym wycofaniem. Aby uzyskać więcej informacji, zobacz Konwertowanie połączeń usług .

Co się stanie po utworzeniu połączenia usługi Azure Resource Manager

Istnieje wiele opcji uwierzytelniania dla nawiązywania połączenia z Azure za pomocą połączenia usługi Azure Resource Manager. Zalecamy używanie federacji tożsamości obciążenia z rejestracją aplikacji lub tożsamością zarządzaną.

Gdy proces tworzenia połączenia z usługą zakończy się pomyślnie, Azure DevOps automatycznie wykonuje te czynności w dzierżawie Microsoft Entra. Jeśli podczas tego procesu wystąpią błędy, zapoznaj się z poniższymi scenariuszami rozwiązywania problemów.

Podczas zapisywania nowego połączenia usługi Azure Resource Manager Azure DevOps wykonuje następujące akcje:

  1. Łączy się z dzierżawą tenantową Microsoft Entra dla wybranej subskrypcji.
  2. Tworzy aplikację w Entra ID w imieniu użytkownika.
  3. Przypisuje aplikację jako współautora do wybranej subskrypcji.
  4. Tworzy połączenie usługi Azure Resource Manager przy użyciu szczegółów tej aplikacji.

Uwaga

Aby utworzyć połączenia usługi, musisz mieć przypisaną rolę Twórca lub Administrator dla grupy Twórca punktów końcowych w ustawieniach projektu: Ustawienia projektu>Połączenia usług>Więcej akcji>Bezpieczeństwo. Współtwórcy projektu są domyślnie dodawani do tej grupy.

Rozwiązywanie problemów ze scenariuszami federacji tożsamości obciążenia

Podczas tworzenia, aktualizowania lub używania połączeń usługi mogą wystąpić następujące problemy:

Połączenie z usługą jest wyłączone

Administrator połączenia z usługą lub administrator Project może wyłączyć połączenie z usługą, a Azure Pipelines może automatycznie wyłączyć jedno po 100 dniach braku aktywności. Zadania zależne od wyłączonego połączenia z usługą mogą zakończyć się niepowodzeniem przed uwierzytelnieniem w usłudze Azure, z komunikatami o autoryzacji lub o niedostępności połączenia.

Aby rozwiązać ten problem:

  1. W Azure DevOps przejdź do pozycji Ustawienia projektu>Połączenia usług.
  2. Otwórz połączenie usługi Azure Resource Manager używane przez potok, który kończy się niepowodzeniem.
  3. Przejrzyj kartę Historia użycia , aby potwierdzić, kiedy połączenie było ostatnio używane.
  4. Przejrzyj dziennik audytu Azure DevOps pod kątem zdarzeń wyłączenia lub włączenia połączenia usługi, aby ustalić, dlaczego połączenie zostało wyłączone.
  5. Upewnij się, że połączenie jest nadal wymagane i powinno nadal mieć dostęp do docelowych zasobów Azure.
  6. Wybierz pozycję Więcej akcji>Włącz.
  7. Uruchom ponownie potok.

Potok wyświetla przestarzałe ostrzeżenie wystawcy Azure DevOps

Ostrzeżenie dotyczące potoku oznacza, że potok używa połączenia usługi federacji tożsamości obciążenia, które nadal korzysta z przestarzałego wystawcy tokenu Azure DevOps.

Aby rozwiązać problem z ostrzeżeniem:

  1. Otwórz połączenie usługi, do którego prowadzi link w ostrzeżeniu.
  2. Zmień połączenie usługi tak, aby używało wystawcy firmy Microsoft Entra.
  3. Jeśli automatyczna konwersja nie zostanie zakończona, wykonaj ręczne kroki konwersji opisane w Skonfiguruj połączenie usługi tożsamości obciążenia dla usługi Resource Manager.
  4. Uruchom potok ponownie po przekonwertowaniu połączenia z usługą.

Konwersja automatyczna kończy się niepowodzeniem

Azure DevOps najpierw próbuje automatycznie przekonwertować połączenie z usługą. Konwersja automatyczna może zakończyć się niepowodzeniem, jeśli Azure DevOps nie może zaktualizować skojarzonej rejestracji aplikacji lub tożsamości zarządzanej.

Aby rozwiązać ten problem:

  1. Upewnij się, że masz uprawnienia administratora połączenia usługi lub administratora punktu końcowego w Azure DevOps.
  2. Upewnij się, że ty lub właściciel tożsamości możecie dodać poświadczenia federacyjne do powiązanej rejestracji aplikacji lub tożsamości zarządzanej.
  3. Skopiuj wartości Wystawca i Identyfikator podmiotu wyświetlane w Azure DevOps.
  4. Dodaj poświadczenie federacyjne do skojarzonej tożsamości na platformie Azure lub w usłudze Microsoft Entra.
  5. Wróć do połączenia usługi Azure DevOps i ukończ instalację.

Możesz edytować połączenie z usługą, ale nie można dodać poświadczeń federacyjnych

Uprawnienia połączenia usługi w Azure DevOps nie przyznają uprawnień do aktualizowania tożsamości w Azure ani Microsoft Entra. Rejestracja aplikacji lub tożsamość zarządzana może być własnością innego użytkownika lub zespołu.

Aby rozwiązać ten problem, poproś administratora Azure, właściciela rejestracji aplikacji lub właściciela tożsamości zarządzanej o dodanie poświadczeń federacyjnych. Podaj wygenerowane wartości wystawcy i identyfikatora podmiotu z połączenia usługi Azure DevOps.

Wartości poświadczeń federacyjnych nie są zgodne

Połączenie usługi dla tożsamości obciążenia roboczego zależy od zgodności wartości federowanych poświadczeń. Jeśli wystawca lub identyfikator podmiotu w Azure lub Microsoft Entra nie jest zgodny z wartościami wygenerowanymi przez Azure DevOps, uwierzytelnianie może zakończyć się niepowodzeniem.

Aby rozwiązać ten problem:

  1. Otwórz połączenie usługi w Azure DevOps.
  2. Skopiuj wygenerowane wartości Wystawca i Identyfikator podmiotu .
  3. Otwórz powiązaną rejestrację aplikacji lub tożsamość zarządzaną w usłudze Azure lub Microsoft Entra.
  4. Porównaj wartości poświadczeń federacyjnych.
  5. Zaktualizuj lub utwórz ponownie poświadczenie federacyjne, tak aby wartości były zgodne.

Nie wiesz, kto jest właścicielem rejestracji aplikacji ani tożsamości zarządzanej

Niektóre organizacje oddzielają administrację Azure DevOps od Azure lub administracji tożsamościami Microsoft Entra. Jeśli bieżący administrator połączenia z usługą nie jest właścicielem tożsamości, administrator może nie być w stanie ukończyć konwersji.

Aby rozwiązać ten problem:

  • W przypadku rejestracji aplikacji sprawdź właścicieli rejestracji aplikacji w Microsoft Entra.
  • W przypadku tożsamości zarządzanych sprawdź, komu przypisano role do tożsamości zarządzanej lub jej grupy zasobów.
  • Jeśli nie możesz zidentyfikować właściciela, skontaktuj się z administratorem dzierżawy lub administratorem subskrypcji.

Połączenie usługi korzysta z aplikacji wielodostępnej

Scenariusze aplikacji wielodostępnych nie są objęte tym wycofaniem z użycia. Wystawca Azure DevOps nadal jest obsługiwany w przypadku połączeń usług korzystających z aplikacji wielodostępnych.

Użytkownik ma tylko uprawnienia gościa w katalogu

Ten błąd występuje podczas procesu automatycznego tworzenia połączenia z usługą, gdy Azure DevOps próbuje utworzyć aplikację i przypisać uprawnienia w Microsoft Entra ID (kroki 2–3 w W co się dzieje podczas tworzenia połączenia usługi Azure Resource Manager). Dzieje się tak, gdy użytkownik, który ma tylko uprawnienia gościa w katalogu Microsoft Entra ID, próbuje utworzyć połączenie usługi Azure Resource Manager w Azure DevOps, ale ma niewystarczające uprawnienia.

Aby rozwiązać ten problem:

  1. Zaloguj się do portalu Azure przy użyciu konta administratora. Konto powinno być powiązane z właścicielem lub administratorem konta użytkownika.

  2. Wybierz Microsoft Entra ID na pasku nawigacyjnym po lewej stronie.

  3. Upewnij się, że edytujesz odpowiedni katalog odpowiadający subskrypcji użytkownika. Jeśli nie, w razie potrzeby wybierz pozycję Przełącz katalog i zaloguj się przy użyciu odpowiednich poświadczeń.

  4. Wybierz pozycję Użytkownicy w sekcji Zarządzanie .

  5. Wybierz Ustawienia użytkownika.

  6. Wybierz pozycję Zarządzaj ustawieniami współpracy zewnętrznej w sekcji Użytkownicy zewnętrzni.

  7. Zmień opcję Uprawnienia użytkownika-gościa są ograniczone na Nie.

Alternatywnie, jeśli chcesz przyznać uprawnienia na poziomie administratora użytkownika, możesz ustawić użytkownika jako członka roli administratora. Wykonaj następujące kroki:

Ostrzeżenie

Przypisywanie użytkowników do roli administratora globalnego umożliwia im odczytywanie i modyfikowanie każdego ustawienia administracyjnego w organizacji Microsoft Entra. Najlepszym rozwiązaniem jest przypisanie tej roli do mniej niż pięciu osób w organizacji.

  1. Zaloguj się do portalu Azure przy użyciu konta administratora. Konto powinno być powiązane z właścicielem lub administratorem konta użytkownika.

  2. Wybierz pozycję Microsoft Entra ID w okienku nawigacji po lewej stronie.

  3. Upewnij się, że edytujesz odpowiedni katalog odpowiadający subskrypcji użytkownika. Jeśli nie, w razie potrzeby wybierz pozycję Przełącz katalog i zaloguj się przy użyciu odpowiednich poświadczeń.

  4. Wybierz pozycję Użytkownicy w sekcji Zarządzanie .

  5. Użyj pola wyszukiwania, aby znaleźć użytkownika, którym chcesz zarządzać.

  6. Wybierz rolę katalogu z sekcji Zarządzanie, a następnie zmień rolę. Wybierz Zapisz, gdy skończysz.

Zastosowanie zmian na całym świecie trwa zwykle od 15 do 20 minut. Następnie użytkownik może spróbować ponownie utworzyć połączenie z usługą.

Użytkownik nie ma autoryzacji do dodawania aplikacji w katalogu

Ten błąd występuje podczas procesu automatycznego tworzenia połączenia z usługą, gdy Azure DevOps próbuje utworzyć aplikację w Microsoft Entra ID w Twoim imieniu (krok 2 w W co się dzieje podczas tworzenia połączenia usługi Azure Resource Manager). Nie masz uprawnień do dodawania zintegrowanych aplikacji w katalogu. Administrator katalogu ma uprawnienia do zmiany tego ustawienia.

Aby rozwiązać ten problem:

  1. Wybierz Microsoft Entra ID w okienku nawigacji po lewej stronie.

  2. Upewnij się, że edytujesz odpowiedni katalog odpowiadający subskrypcji użytkownika. Jeśli nie, w razie potrzeby wybierz pozycję Przełącz katalog i zaloguj się przy użyciu odpowiednich poświadczeń.

  3. Wybierz pozycję Użytkownicy, a następnie wybierz pozycję Ustawienia użytkownika.

  4. W obszarze Rejestracje aplikacji zmień opcję Użytkownicy mogą rejestrować aplikacje na Tak.

Możesz również utworzyć głównego użytkownika usługi przy użyciu istniejącego użytkownika, który ma już wymagane uprawnienia w systemie Entra ID. Aby uzyskać więcej informacji, zobacz Tworzenie połączenia usługi Azure Resource Manager z istniejącą jednostką usługi.

Nie można uzyskać tokenu dostępu lub nie znaleziono prawidłowego tokenu odświeżania

Te błędy zwykle występują, gdy sesja wygaśnie.

Aby rozwiązać następujące problemy:

  1. Wyloguj się z Azure DevOps.

  2. Otwórz okno przeglądarki InPrivate lub incognito i przejdź do Azure DevOps.

  3. Zaloguj się przy użyciu odpowiednich poświadczeń.

  4. Wybierz organizację i projekt.

  5. Spróbuj utworzyć ponownie połączenie usługi. Aby uzyskać szczegółowe instrukcje, zobacz Zarządzanie połączeniami usług.

Wygląda na to, że nie posiadasz aktywnej subskrypcji Azure podczas próby edycji lub stworzenia nowego połączenia z usługą.

Ten błąd zwykle występuje, gdy należysz do wielu dzierżaw Entra ID.

Aby rozwiązać ten problem:

  1. Przejdź do profilu programu VS.

  2. Sprawdź, czy masz wiele dzierżaw.

  3. Wybierz wszystkich dzierżawców, a następnie ponownie uwierzytelnij.

  4. Spróbuj utworzyć połączenie z usługą, a następnie sprawdź, czy subskrypcja jest ładowana.

Nie można przypisać roli Kontrybutora

Ten błąd występuje podczas procesu automatycznego tworzenia połączenia z usługą, gdy Azure DevOps próbuje przypisać aplikację jako współautora do subskrypcji (krok 3 w Jak się dzieje podczas tworzenia połączenia usługi Azure Resource Manager). Ten błąd zwykle występuje, gdy nie masz uprawnień Write dla wybranej subskrypcji Azure.

Aby rozwiązać ten problem, poproś administratora subskrypcji o przypisanie ci odpowiedniej roli w Microsoft Entra ID.

Subskrypcja nie jest wyświetlana podczas tworzenia połączenia z usługą

Istnieje wiele możliwych przyczyn tego problemu.

  • Przekroczono maksymalną liczbę 50 subskrypcji Azure wymienionych w różnych menu rozwijanych, takich jak subskrypcje Azure (rozliczenia, połączenia usługowe itp.): Jeśli konfigurujesz połączenie usługowe i masz więcej niż 50 subskrypcji Azure, niektóre subskrypcje nie są wymienione. W tym scenariuszu wykonaj następujące kroki:

    1. Utwórz nowego, natywnego użytkownika Microsoft Entra w instancji Microsoft Entra w ramach subskrypcji Azure.

    2. Skonfiguruj użytkownika Microsoft Entra, aby miał odpowiednie uprawnienia do konfigurowania rozliczeń lub tworzenia połączeń usług. Aby uzyskać więcej informacji, zobacz Dodaj użytkownika, który może skonfigurować rozliczenia dla Azure DevOps.

    3. Dodaj użytkownika Microsoft Entra do organizacji Azure DevOps z poziomem dostępu Stakeholder, a następnie dodaj go do grupy Administratorzy kolekcji projektów (na potrzeby rozliczeń) lub upewnij się, że użytkownik ma wystarczające uprawnienia w projekcie zespołowym do tworzenia połączeń usług.

    4. Zaloguj się do Azure DevOps, używając nowych poświadczeń użytkownika, i skonfiguruj rozliczenia. Na liście jest widoczna tylko jedna subskrypcja Azure.

  • Stary token użytkownika buforowany w usługach Azure DevOps Services: Jeśli subskrypcja Azure nie pojawia się podczas tworzenia połączenia z usługą Azure Resource Manager (ARM), może to być spowodowane starym tokenem użytkownika buforowanym w usługach Azure DevOps Services. Ten scenariusz nie jest od razu oczywisty, ponieważ ekran listy subskrypcji Azure nie wyświetla żadnych błędów ani komunikatów ostrzegawczych wskazujących, że token użytkownika jest nieaktualny. Aby rozwiązać ten problem, ręcznie zaktualizuj buforowany token użytkownika w usługach Azure DevOps, wykonując następujące czynności:

    1. Wyloguj się z usług Azure DevOps i zaloguj się ponownie. Ta akcja może odświeżyć token użytkownika.
    2. Wyczyść pamięć podręczną przeglądarki i pliki cookie, aby upewnić się, że wszystkie stare tokeny zostaną usunięte.
    3. W portalu Azure DevOps przejdź do połączeń usług i ponownie autoryzuj połączenie do Azure. W tym kroku zostanie wyświetlony monit Azure DevOps o użycie nowego tokenu.
  • Nieprawidłowe ustawienia typów kont pomocy technicznej: Rozwiąż ten problem, zmieniając ustawienia obsługiwanych typów kont i definiując, kto może korzystać z aplikacji. Wykonaj te kroki:

    1. Zaloguj się do portalu Azure.

    2. Jeśli masz dostęp do wielu dzierżaw, użyj filtru Katalog i subskrypcja w górnym menu, aby wybrać dzierżawę, w której chcesz zarejestrować aplikację.

      Zrzut ekranu przedstawiający ikonę katalogu i subskrypcji w portalu Azure.

    3. Wybierz pozycję Microsoft Entra ID w okienku po lewej stronie.

    4. Wybierz Rejestracje aplikacji.

    5. Wybierz aplikację z listy zarejestrowanych aplikacji.

    6. W obszarze Uwierzytelnianie wybierz pozycję Obsługiwane typy kont.

    7. W obszarze Obsługiwane typy kont kto może używać tej aplikacji lub uzyskać dostęp do tego interfejsu API? wybierz pozycję Konta w dowolnym katalogu organizacyjnym.

      Zrzut ekranu przedstawiający obsługiwane typy kont.

    8. Wybierz Zapisz, gdy skończysz.

Główna usługa lub tajny klucz wygasł

Principały usług lub wpisy tajne, które Azure DevOps automatycznie tworzy, wygasają i wymagają odnowienia. Jeśli wystąpią problemy z odświeżaniem tokenu, zobacz Nie można uzyskać tokenu dostępu lub nie znaleziono prawidłowego tokenu odświeżania. Aby uniknąć konieczności odnawiania tajemnic, użyj federacji tożsamości obciążeń z Azure Resource Manager.

Jeśli token wygaśnie, może zostać wyświetlony jeden z następujących komunikatów o błędach:

  • AADSTS7000215: Invalid client secret is provided
  • AADSTS7000222: The provided client secret keys for app '***' are expired
  • Invalid client id or client secret

Aby odnowić token dostępu dla automatycznie utworzonej aplikacji usługi lub klucza tajnego, wykonaj następujące kroki:

  1. Przejdź do Ustawienia projektu>Połączenia usług, a następnie wybierz połączenie usług, które chcesz odświeżyć.

  2. Wybierz Obróć sekret.

    Zrzut ekranu przedstawiający opcję rotacji sekretu usługi ARM.

Token dla jednostki usługi lub hasła został odnowiony na trzy miesiące.

Uwaga

Możesz odnowić klucz tajny jednostki usługi, nawet jeśli nie wygasł. Jeśli opcja Obróć klucz tajny nie jest widoczna, otwórz połączenie z usługą, wybierz pozycję Edytuj, a następnie wybierz pozycję Zapisz, aby odnowić klucz tajny. Upewnij się, że użytkownik wykonujący operację ma odpowiednie uprawnienia do subskrypcji i Microsoft Entra ID, ponieważ aktualizuje tajny klucz aplikacji zarejestrowanej dla podmiotu zabezpieczeń usługi. Aby uzyskać więcej informacji, zobacz Tworzenie rejestracji aplikacji z tajnym kluczem i Co się dzieje podczas tworzenia połączenia usługi Resource Manager?

Nie można uzyskać JWT przy użyciu identyfikatora klienta jednostki usługi

Ten problem występuje podczas próby zapisania połączenia z usługą, które ma wygasły tajny klucz lub inne problemy na poziomie usługi Microsoft Entra ID.

Połączenie usługi w tym stanie może również nie być wyświetlane na listach rozwijanych zadań potoku (takich jak Azure App Service Deploy lub Azure PowerShell), mimo że jest widoczne w obszarze Ustawienia projektu>Połączenia usługi. Dzieje się tak, gdy podstawowa jednostka usługi została usunięta lub isReady stan połączenia to false.

Aby rozwiązać ten problem:

  1. Przejdź do pozycji Project settings>Service connections a następnie wybierz połączenie usługi, które chcesz zmodyfikować.
  2. Wybierz pozycję Edytuj, a następnie wybierz pozycję Weryfikuj , aby sprawdzić stan połączenia.
  3. Jeśli weryfikacja nie powiedzie się w przypadku błędu AADSTS700016 ("Aplikacja z identyfikatorem nie została znaleziona w katalogu"), konto usługi zostało usunięte. Utwórz nowe połączenie usługi lub dla połączeń ręcznych zaktualizuj połączenie przy użyciu nowych szczegółów jednostki usługi.
  4. Jeśli weryfikacja zakończy się pomyślnie, wybierz pozycję Zapisz , aby zapisać połączenie z usługą.

Uwaga

Jeśli wystąpi błąd, taki jak Failed to obtain the Json Web Token(JWT) using service principal client ID. Exception message: AADSTS7000112: Application is disabled., skontaktuj się z zespołem Microsoft Entra ID, aby potwierdzić, że opcja Włączone dla użytkowników do logowania w aplikacji przedsiębiorstwa powiązanej z głównym elementem usługi nie jest wyłączona.

Subskrypcja Azure nie jest przekazywana z danych wyjściowych poprzedniego zadania.

Jeśli ustawiasz dynamicznie subskrypcję Azure dla swojego potoku wdrożeniowego i chcesz korzystać ze zmiennej wyjściowej z poprzedniego zadania, może wystąpić ten problem.

Aby rozwiązać ten problem, upewnij się, że wartości są zdefiniowane w sekcji zmiennych ciągu operacji. Następnie można przekazać tę zmienną między zadaniami potoku.

Jakie mechanizmy uwierzytelniania są obsługiwane? Jak działają tożsamości zarządzane?

Połączenie usługi Azure Resource Manager może łączyć się z subskrypcją Azure przy użyciu uwierzytelniania jednostki usługi (SPA) lub uwierzytelniania tożsamości zarządzanej.

Połączenie usługi Azure Resource Manager może łączyć się z subskrypcją Azure, grupą zarządzania lub obszarem roboczym uczenia maszynowego przy użyciu:

  • Rejestracja aplikacji (zalecane): uwierzytelnianie połączenia przy użyciu federacji tożsamości obciążeń lub wpisu tajnego.
  • Tożsamość zarządzana: Zarządzane tożsamości dla zasobów Azure zapewniają usługom Azure automatycznie zarządzaną tożsamość w Microsoft Entra ID. Można również użyć zarządzanej tożsamości przypisanej przez agenta.

Podczas konfigurowania połączenia usługi z tożsamością zarządzaną jako metody uwierzytelniania proces nie tworzy nowej tożsamości zarządzanej. Po prostu ustanawia połączenie z serwisem. Aby ta metoda uwierzytelniania działała poprawnie, należy spełnić pewne warunki. W szczególności, ponieważ tożsamość zarządzana jest wybraną metodą uwierzytelniania, używana maszyna wirtualna powinna mieć tożsamość przypisaną przez system. Ponadto ta maszyna wirtualna musi działać jako samodzielny agent w potokach, aby przepływ pracy mógł być w pełni realizowany, umożliwiając potokowi wdrażanie zmian poprzez połączenie z usługą. Tożsamość przypisana przez system na maszynie wirtualnej identyfikuje tę samą maszynę wirtualną jako agenta w potoku, umożliwiając uwierzytelnianie. Ta konfiguracja umożliwia wykorzystanie istniejącej tożsamości zarządzanej.

Aby dowiedzieć się więcej o tożsamościach zarządzanych dla maszyn wirtualnych, zobacz Przypisywanie ról.

Uwaga

Agenci hostowani przez Microsoft nie obsługują zarządzanych tożsamości. W tym scenariuszu musisz skonfigurować własnego agenta na maszynie wirtualnej Azure i skonfigurować tożsamość zarządzaną dla tej maszyny wirtualnej.

Błąd AuthorizationFailed podczas uruchamiania zadań potoku

Gdy zadanie potoku jest uruchamiane względem zasobu Azure, może zostać wyświetlony następujący błąd:

AuthorizationFailed: The client '<ClientName>' with object id '<ObjectId>' does not have authorization 
to perform action '<ActionName>' over scope '/subscriptions/<SubscriptionId>/...'

Identyfikator klienta i obiektu w komunikacie o błędzie odnoszą się do jednostki usługi, która wspiera połączenie z usługą.

Aby rozwiązać ten problem:

  1. W portalu Azure przejdź do zasobu lub grupy zasobów, do których odwołuje się zakres błędu.
  2. Wybierz pozycję Kontrola dostępu (IAM)>Przypisania ról.
  3. Sprawdź, czy jednostka usługi wymieniona w błędzie ma rolę zawierającą wymaganą akcję (na przykład Współautor lub rola niestandardowa).
  4. Jeśli brakuje przypisania roli, wybierz pozycję Dodaj>przypisanie roli i przypisz odpowiednią rolę do jednostki usługi.
  5. Poczekaj kilka minut na propagację przydzielenia roli, a następnie spróbuj ponownie uruchomić potok.

Aby uzyskać więcej informacji na temat RBAC Azure, odwiedź Wbudowane role Azure.

Połączenie usługi nie jest upoważnione dla pipeline'u

Po uruchomieniu potoku może zostać wyświetlony następujący błąd:

Resource not authorized. You need to authorize the resource before it can be used.

Ten błąd występuje, gdy połączenie z usługą nie otrzymało uprawnień do potoku, który próbuje z niego skorzystać.

Aby rozwiązać ten problem:

  1. Przejdź do pozycji Project settings>Service connections.
  2. Wybierz połączenie usługi używane przez pipeline.
  3. Wybierz Więcej opcji (...) >Zabezpieczenia.
  4. W sekcji Uprawnienia potoku wybierz + i dodaj potok, który wymaga dostępu.

Alternatywnie możesz udzielić dostępu do wszystkich potoków. Nie jest to zalecane. Aby udzielić dostępu do wszystkich potoków:

Na stronie zabezpieczeń połączenia usługi wybierz pozycję Więcej akcji>Otwórz dostęp.

Uwaga

Otwarty dostęp pozwala każdemu potokowi w projekcie korzystać z połączenia z usługą. W przypadku ściślejszej kontroli przyznaj dostęp tylko do określonych potoków.

Aby uzyskać więcej informacji, zobacz Zabezpieczenia połączeń z usługą.

Tworzenie jednostki usługi bez uprawnień subskrypcji Azure

Jeśli nie masz wymaganych uprawnień do subskrypcji Azure lub Microsoft Entra ID w celu utworzenia połączenia z usługą za pośrednictwem metody automatycznej, poproś administratora o ręczne utworzenie jednostki usługi. Następnie możesz wprowadzić szczegóły zasady usługi w Azure DevOps, aby utworzyć połączenie z usługą.

  1. Poproś użytkownika, który ma wymaganą subskrypcję Azure i uprawnienia do Microsoft Entra ID do utworzenia jednostki usługi w Microsoft Entra ID i przypisania jej odpowiedniej roli w ramach subskrypcji.
  2. Uzyskaj następujące informacje od administratora: identyfikator aplikacji (klienta),identyfikator katalogu (dzierżawy), identyfikator subskrypcji oraz klucz tajny klienta lub certyfikat.
  3. W Azure DevOps przejdź do Ustawienia projektuPołączenia z usługąNowe połączenie z usługąAzure Resource ManagerGłówny użytkownik usługi (ręczny).
  4. Wprowadź szczegóły podane przez administratora i zapisz połączenie.

Aby uzyskać więcej informacji, zobacz Tworzenie połączenia usługi Azure Resource Manager z istniejącą jednostką usługi.

Nie można usunąć połączenia z usługą

Podczas próby usunięcia połączenia z usługą Azure Resource Manager może zostać wyświetlony błąd, taki jak "Nie można usunąć uprawnienia Azure" lub "Nie można usunąć jednostki usługi z Microsoft Entra ID". W niektórych przypadkach połączenie pozostaje na liście, mimo że nie jest wyświetlany błąd.

Aby rozwiązać ten problem:

  1. Wybierz połączenie z usługą i wybierz pozycję Usuń. Nawet jeśli pojawią się komunikaty o błędach dotyczące uprawnień Azure lub jednostki usługi, połączenie powinno być nadal usuwane z Azure DevOps.

  2. Jeśli usunięcie zakończy się niepowodzeniem, użyj interfejsu API REST punktu końcowego usługi , aby usunąć go bezpośrednio. Ustaw parametr deep na false, aby pominąć czyszczenie powiązanego obiektu usługi:

    DELETE https://dev.azure.com/{organization}/{project}/_apis/serviceendpoint/endpoints/{endpointId}?deep=false&api-version=7.1
    
  3. Po usunięciu połączenia ręcznie usuń lub zaktualizuj skojarzoną jednostkę usługi z rejestracji aplikacji w portalu Azure.

Wskazówka

Możesz poprosić Copilot o pomoc w rozwiązywaniu problemów z komunikatami o błędach. Aby dowiedzieć się więcej, zobacz Rozwiązywanie problemów z błędem połączenia z usługą Azure DevOps.

Rozwiązywanie problemów z błędem połączenia usługi Azure DevOps za pomocą sztucznej inteligencji

Przykładowe polecenie dla Copilot Chat pomaga Copilotowi w rozwiązywaniu problemów z kodem błędu i komunikatem. Skopiuj i wklej ten monit do Copilot Chat, zastępując symbol zastępczy określonym komunikatem o błędzie.

I'm getting this Azure DevOps service connection error: [PASTE YOUR ERROR MESSAGE HERE]

Can you help me troubleshoot this issue? Please provide step-by-step instructions to:
1. Identify the root cause
2. Fix the configuration in Azure or Entra ID
3. Verify the solution works

Context: This is for an Azure Resource Manager service connection in Azure DevOps.