Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Połącz agenta z usługą GitHub przy użyciu aplikacji Bring Your Own GitHub App, tożsamości usługi zarejestrowanej przez organizację przy użyciu poświadczeń opartych na Key Vault.
Ważna
W tym samouczku opisano, jak skonfigurować dostęp do repozytoriów GitHub za pomocą własnej aplikacji GitHub (BYO) z poświadczeniami przechowywanymi w usłudze Key Vault. Wszystkie operacje są przypisywane tożsamości aplikacji, a nie indywidualnemu użytkownikowi.
Kiedy używać aplikacji BYO
Użyj aplikacji BYO, gdy:
- Twoja organizacja wymaga uwierzytelniania opartego na aplikacji i kontroli nadzoru kluczy.
- Nawiązujesz połączenie z
*.ghe.comrepozytoriami (wymagane). - Chcesz uzyskać dostęp oparty na tokenach instalacji, a nie tokeny użytkownika.
Wymagania wstępne
- Uruchamianie agenta z rolą Administrator lub Użytkownik standardowy
- Aplikacja GitHub utworzona na hoście docelowym (
github.comlub*.ghe.com) - Dostęp administratora do organizacji lub repozytorium w serwisie GitHub (aby utworzyć, zainstalować lub zweryfikować zakres uprawnień aplikacji GitHub)
- Klucz prywatny aplikacji przechowywany w Azure Key Vault jako klucz tajny
- Tożsamość zarządzana agenta z rolą Key Vault Secrets User w tym magazynie kluczy
Krok 1. Tworzenie aplikacji GitHub
Jeśli masz już aplikację GitHub z odpowiednimi uprawnieniami, przejdź do Krok 2.
- Przejdź do hosta GitHub:
-
github.com: Przejdź do organizacji, a następnie wybierz Settings>Developer settings>GitHub Apps>New GitHub App. -
<tenant>.ghe.com: Ta sama ścieżka jak na instancji GHE.
-
- Wypełnij szczegóły aplikacji:
-
GitHub Nazwa aplikacji: na przykład
contoso-sre-agent-reader(prefiks z nazwą organizacji, aby uniknąć konfliktów). -
Adres URL strony głównej:
https://sre.azure.com. - Webhook: odznacz Aktywne (agent nie używa webhooków).
-
GitHub Nazwa aplikacji: na przykład
- 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 do Issues i Pull requests.
- W obszarze Gdzie można zainstalować tę aplikację GitHub? wybierz pozycję Only na tym koncie.
- Wybierz pozycję Utwórz aplikację GitHub.
- Zanotuj identyfikator klienta wyświetlany na stronie Ustawienia aplikacji (zaczyna się od
Iv..., różni się to od numerycznego identyfikatora aplikacji).
Instalowanie aplikacji GitHub
- Na stronie GitHub Ustawienia aplikacji wybierz pozycję Zainstaluj aplikację na lewym pasku bocznym.
- Wybierz organizację.
- Wybierz pozycję Wszystkie repozytoria lub wybierz określone repozytoria.
- Wybierz Zainstaluj.
Krok 2. Generowanie klucza prywatnego
- Na stronie ustawień aplikacji GitHub przewiń do Klucze prywatne.
- Wybierz pozycję Wygeneruj klucz prywatny.
- Pobierany jest
.pemplik. Ten plik jest kluczem prywatnym RSA używanym przez agenta do uwierzytelniania.
Warning
Przechowuj plik PEM w bezpiecznym miejscu. Ten klucz należy przekazać do Key Vault w następnym kroku. Nie zatwierdzaj go w repozytorium ani nie udostępniaj go.
Krok 3. Przechowywanie klucza prywatnego w Key Vault
- Otwórz portal Azure i przejdź do Key Vault.
- Przejdź do pozycji Wpisy tajne>Generuj/Importuj.
- Ustaw nazwę (na przykład
sre-agent-github-app-key) i wklej pełną zawartość PEM jako wartość (w tym-----BEGIN RSA PRIVATE KEY-----i-----END RSA PRIVATE KEY-----nagłówki). - Wybierz Utwórz.
- Otwórz klucz tajny, wybierz bieżącą wersję i skopiuj identyfikator URI Secret Identifier:
https://myvault.vault.azure.net/secrets/my-github-app-key/<version>
Tip
Użyj URI z numerem wersji (z sufiksem /<version>), aby przypisać konkretną wersję klucza, lub pomiń numer wersji, aby zawsze używać najnowszej.
Zalecane jest ustawienie „bez wersji”. Po rotacji klucza agent automatycznie pobiera nową wersję bez aktualizowania identyfikatora URI.
Krok 4. Udzielanie Key Vault dostępu do tożsamości agenta
- W portalu Azure otwórz Key Vault i przejdź do pozycji Kontrolka dostępu (IAM).
- Przypisz rolę Key Vault Secrets User do tożsamości zarządzanej agenta.
- Poczekaj na propagację przypisania roli.
Krok 5. Konfigurowanie aplikacji BYO w programie Code Access
- Otwórz agenta.
- Przejdź do pozycji Builder>Dostęp do kodu.
Wybierz pozycję Dodaj repozytoria.
Wybierz GitHub i wprowadź hosta:
-
github.comdla publicznego GitHuba. -
<tenant>.ghe.comdla chmury korporacyjnej.
-
Przejdź do uwierzytelniania.
Wybierz Użyj własnej aplikacji GitHub.
Wpisz:
- identyfikator klienta
- Identyfikator URI klucza prywatnego (Key Vault)
- Opcjonalna tożsamość Key Vault (lub zachowaj przypisaną przez system)
Wybierz Połącz.
Kreator weryfikuje dane logowania. Jeśli operacja się powiedzie, zobaczysz Połączono jako aplikacja GitHub z zielonym znacznikiem wyboru.
Note
Jeśli zobaczysz zielony znacznik wyboru i Połączono jako aplikacja GitHub, poświadczenia są prawidłowe. Jeśli Connect nie powiedzie się, sprawdź identyfikator klienta, URI usługi Key Vault i uprawnienia tożsamości zarządzanej.
Jeśli Code Access nie otwiera się z lewego panelu nawigacyjnego, odśwież stronę agenta, ponownie rozwiń Builder i spróbuj jeszcze raz.
Ważna
Po wprowadzeniu domeny *.ghe.com jako hosta kreator automatycznie wybiera opcję Użyj własnej aplikacji GitHub. OAuth i PAT nie są dostępne dla hostów GHE.
Krok 6. Dodawanie repozytoriów i weryfikowanie
Wybierz repozytoria i zapisz.
Upewnij się, że karta Dostęp do kodu wyświetla podłączony host i typ
GitHubAppuwierzytelnienia.Przetestuj dostęp do kodu na czacie:
What files are in the root of owner/repo?
Jeśli udzielono ci również uprawnień Issues do aplikacji GitHub, sprawdź operacje dotyczące problemów:
List recent issues from owner/repo.
Tożsamość zarządzana dla aplikacji
Domyślnie agent używa przypisanej przez system tożsamości zarządzanej do odczytu klucza prywatnego z Key Vault. Jeśli zarządzasz wieloma GitHub Apps (na przykład po jednej dla każdego wystąpienia GHE), przypisz do każdej aplikacji inną tożsamość zarządzaną przypisaną przez użytkownika. Takie podejście zapewnia izolację bezpieczeństwa, ponieważ każda tożsamość ma dostęp tylko do własnego sekretu w usłudze Key Vault.
Wybierz tożsamość na liście rozwijanej Key Vault identity w kroku 5.
Obsługa wielu hostów dla łączników 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: aplikacja BYO (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. |
| Odczyt sekretu nie powiódł się | Brak mechanizmu RBAC lub zasad dostępu usługi Key Vault | Udziel użytkownikowi wpisów tajnych Key Vault tożsamości agenta. Jeśli używasz zasad dostępu usługi Key Vault, przyznaj uprawnienie Get do wpisów tajnych. |
| Repo pokazuje „Niepowodzenie” w sekcji Dostęp do kodu | Brak uprawnień aplikacji lub brak zakresu instalacji | Weryfikacja metadanych: odczyt + Zawartość: odczyt i zakres 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. |