Łączenie repozytoriów GitHub Enterprise Cloud z agentem usługi Azure SRE

Ważna

Ta funkcja agenta SRE platformy Azure jest obecnie dostępna w wersji zapoznawczej. Zobacz dodatkowe warunki użytkowania dla wersji zapoznawczych platformy Microsoft Azure, aby zapoznać się z postanowieniami prawnymi dotyczącymi funkcji platformy Azure, które są w wersji beta, wersji zapoznawczej lub w inny sposób nie zostały jeszcze wydane w wersji ogólnodostępnej.

Połącz repozytoria hostowane w chmurze GitHub Enterprise Cloud (<TENANT>.ghe.com) lub github.com do agenta Azure SRE przy użyciu aplikacji BYO (Bring Your Own GitHub). Agent generuje krótkotrwałe tokeny instalacyjne na podstawie klucza prywatnego aplikacji, który jest przechowywany w usłudze Azure Key Vault i nigdy nie jest kopiowany.

Note

Aplikacja BYO GitHub działa zarówno dla hostów github.com, jak i *.ghe.com. Informacje na temat github.com z użyciem OAuth lub PAT zawiera artykuł Skonfiguruj łącznik GitHub.

Kiedy używać uwierzytelniania usługi BYO GitHub App

Użyj aplikacji BYO, gdy:

  • Twoja organizacja wymaga uwierzytelniania opartego na aplikacji i kontroli nadzoru kluczy.
  • Łączysz *.ghe.com repozytoria (wymagane, ponieważ protokół OAuth i pat nie są dostępne dla hostów GHE).
  • Chcesz uzyskać dostęp oparty na tokenach instalacji, a nie tokeny użytkownika.

Wymagania wstępne

Requirement Szczegóły
Azure agentA SRE Agent w stanie Uruchomiony z rolą Administrator lub Użytkownik standardowy
Aplikacja GitHub Aplikacja GitHub utworzona na hoście docelowym (github.com lub <TENANT>.ghe.com)
dostęp administratora GitHub Dostęp administratora organizacji lub repozytorium do tworzenia, instalowania lub weryfikowania zakresu aplikacji GitHub
Azure Key Vault Magazyn, w którym można przechowywać klucz prywatny aplikacji GitHub
Tożsamość zarządzana Możliwość przypisania roli Key Vault Crypto User dla zaimportowanego klucza do tożsamości używanej przez agenta

Tworzenie aplikacji GitHub

Jeśli masz już aplikację w GitHub z odpowiednimi uprawnieniami, przejdź do Przechowywanie klucza prywatnego w Azure Key Vault.

  1. Przejdź do hosta GitHub:
    • github.com: Przejdź do ustawień organizacji >Ustawienia>Ustawienia programisty>GitHub Apps>Nowa aplikacja GitHub
    • <TENANT>.ghe.com: Ta sama ścieżka w Twojej instancji GHE
  2. Wypełnij szczegóły aplikacji:
    • GitHub Nazwa aplikacji: na przykład sre-agent-reader
    • Adres URL strony głównej: https://sre.azure.com
    • Webhook: odznacz opcję Aktywne (agent nie używa webhooków)
  3. W obszarze Uprawnienia ustaw:
    • Uprawnienia > repozytorium Zawartość: tylko do odczytu (wymagane)
    • Uprawnienia > repozytorium Metadane: tylko do odczytu (wybrane automatycznie)
    • Opcjonalnie dodaj dostęp do odczytu elementów Issues i Pull requests
  4. W obszarze Gdzie można zainstalować tę aplikację GitHub? wybierz pozycję Only na tym koncie.
  5. Wybierz pozycję Utwórz aplikację GitHub.
  6. Zanotuj identyfikator klienta wyświetlany na stronie ustawień aplikacji.

Instalowanie aplikacji GitHub

  1. Na stronie GitHub Ustawienia aplikacji wybierz pozycję Zainstaluj aplikację na lewym pasku bocznym.
  2. Wybierz organizację.
  3. Wybierz pozycję Wszystkie repozytoria lub wybierz określone repozytoria.
  4. Wybierz Zainstaluj.

Generowanie klucza prywatnego aplikacji GitHub

  1. Na stronie ustawień aplikacji GitHub przewiń do Klucze prywatne.
  2. Wybierz pozycję Wygeneruj klucz prywatny.
  3. Pobierany jest .pem plik. Ten plik jest kluczem prywatnym RSA używanym przez agenta do uwierzytelniania.

Caution

Przechowuj plik PEM w bezpiecznym miejscu. Przekażesz go do Key Vault w następnym kroku. Nie zatwierdzaj go w repozytorium i nie udostępniaj go.

Przechowywanie klucza prywatnego w Azure Key Vault

Zaimportuj klucz prywatny aplikacji GitHub jako klucz RSA, a nie sekret, z włączoną operacją Sign. Przekonwertuj pobrany PEM z GitHub na PKCS#8 przed importem, a następnie trwale usuń lokalne pliki PEM po pomyślnym imporcie. Polecenia znajdują się w artykule Zapisz klucz prywatny w Key Vault.

Skopiuj URI Identyfikatora klucza importowanego klucza:

https://myvault.vault.azure.net/keys/my-github-app-key/<VERSION>

Wskazówka

URI z wersją i bez wersji: Możesz użyć URI z wersją (z sufiksem /<VERSION>), aby powiązać je z określoną wersją klucza, lub pominąć wersję w URI, aby zawsze używać najnowszej wersji. Użyj niewersyjnego identyfikatora URI, aby po obróceniu klucza agent automatycznie pobiera nową wersję bez aktualizowania identyfikatora URI.

Udzielanie Key Vault dostępu do tożsamości agenta

  1. W portalu Azure otwórz Key Vault>Kontrolka dostępu (IAM).
  2. Przypisz Key Vault Crypto User wybranej tożsamości dla dostępu do Key Vault. Ogranicz przypisanie do zaimportowanego klucza lub tylko do magazynu, jeśli jest dedykowany tej aplikacji.
  3. Poczekaj, aż przypisanie roli zacznie obowiązywać.

Skonfiguruj aplikację BYO w funkcji Dostęp do kodu

  1. Otwórz swojego agenta w portalu.
  2. Przejdź do Build + konfiguracja>Kontekst>.
  3. Wybierz pozycję Dodaj repozytorium.
  4. W kroku Połączenie wybierz GitHub i wpisz pełny adres URL repozytorium, na przykład https://<TENANT>.ghe.com/owner/repo.
  5. Jeśli istnieje pasujące poświadczenie, wybierz Nowe połączenie w sekcji Dodaj repozytorium z, aby skonfigurować inne poświadczenie.
  6. W opcji Metoda połączenia wybierz Użyj swojej aplikacji GitHub.
  7. Wejść:
    • identyfikator klienta
    • URI klucza prywatnego (Key Vault): /keys/ URI, nie /secrets/ URI
    • Opcjonalna tożsamość Key Vault (lub zachowaj przypisaną przez system)
  8. Wybierz Połącz.

Kreator weryfikuje dane logowania. Jeśli operacja się powiedzie, zobaczysz Połączono jako aplikacja GitHub z zielonym znacznikiem wyboru.

Note

Gdy URL repozytorium używa hosta*.ghe.com, kreator wybiera Użyj aplikacji GitHub. OAuth i PAT nie są dostępne dla hostów GHE.

Dodawanie repozytoriów i weryfikowanie połączenia

  1. Wybierz Dalej, otwórz okno Dodaj repozytoria, przejrzyj wpisy repozytorium i nazwy wyświetlane oraz wybierz Zapisz.
  2. Potwierdź, że repozytorium pojawia się na liście Dostęp do kodu, a jego połączenie w kolumnie Połączenie.
  3. Przetestuj na czacie:
Get me recent issues from owner/repo.

Tożsamość zarządzana dla każdej aplikacji w wielu aplikacjach GitHub

Domyślnie agent używa swojej tożsamości zarządzanej przypisanej przez system do operacji podpisywania w usłudze Key Vault. Jeśli zarządzasz wieloma aplikacjami GitHub (na przykład po jednej na każde wystąpienie GHE), możesz przypisać do każdej aplikacji inną tożsamość zarządzaną przypisaną przez użytkownika. Każda tożsamość potrzebuje dostępu tylko do własnego klucza Key Vault.

Wybierz tożsamość na liście rozwijanej Key Vault identity podczas kroku konfigurowania.

Obsługa wielu hostów dla połączeń GitHub

Możesz połączyć wiele hostów GitHub z tym samym agentem. Każdy host ma niezależne uwierzytelnianie:

  • github.com → OAuth, PAT lub BYO App
  • contoso.ghe.com → aplikacja BYO
  • engineering.ghe.com → BYO App (z inną aplikacją GitHub)

Rozłączanie jednego hosta nie ma wpływu na innych.

Troubleshooting

Objaw Prawdopodobna przyczyna Napraw.
Sprawdzanie poprawności uwierzytelniania kończy się niepowodzeniem Nieprawidłowy identyfikator klienta lub nieprawidłowy host Sprawdź, czy aplikacja została utworzona na tym samym hoście wprowadzonym w programie Code Access.
Podpisywanie przy użyciu usługi Key Vault kończy się niepowodzeniem Błędny URI klucza lub brakujące uprawnienia klucza Użyj identyfikatora URI RSA /keys/ z włączoną opcją Sign i przyznaj rolę Key Vault Crypto User wybranej tożsamości.
Repozytorium wyświetla Niepowodzenie w sekcji Dostęp do kodu Brak uprawnień aplikacji lub brak zakresu instalacji Weryfikowanie metadanych: odczytywanie + zawartości: zakres odczytu i instalacji.
Problemy z czatem działają, ale dostęp do kodu kończy się niepowodzeniem Kontrole punktu końcowego/ścieżki różnią się Uruchom ponownie test połączenia i zweryfikuj uprawnienie metadanych.

Następny krok