Verbinden GitHub Enterprise Cloud-Repositorys mit Azure SRE-Agent

Important

Dieses Feature von Azure SRE-Agent befindet sich derzeit in der Vorschau. Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

Verbinden Sie Repositorys, die auf GitHub Enterprise Cloud (<TENANT>.ghe.com) oder github.com mit Ihrem Azure SRE-Agent gehostet werden, indem Sie eine BYO-GitHub-App (Bring Your Own) verwenden. Der Agent erstellt kurzlebige Installationstokens mithilfe des privaten Schlüssels Ihrer App, der in Azure Key Vault gespeichert und niemals kopiert wird.

Note

BYO GitHub App funktioniert sowohl für github.com als auch für *.ghe.com Hosts. Informationen zu github.com mit OAuth oder PAT finden Sie unter Setup GitHub Connector.

Gründe für die Verwendung der BYO-GitHub App-Authentifizierung

Verwenden Sie BYO-App in folgenden Fällen:

  • Ihre Organisation erfordert appbasierte Authentifizierung und Schlüsselsicherungskontrollen.
  • Sie verbinden *.ghe.com-Repositories (erforderlich, da OAuth und PAT für GHE Hosts nicht verfügbar sind).
  • Sie möchten den installationsbasierten Zugriff anstelle von Benutzertoken verwenden.

Voraussetzungen

Anforderung Details
Azure SRE-Agent Ein Agent im Status "Ausführen" mit Administrator- oder Standardbenutzerrolle
GitHub App Eine auf Ihrem Zielhost erstellte GitHub-App (github.com oder <TENANT>.ghe.com)
GitHub Administratorzugriff Organisations- oder Repository-Administratorzugriff zum Erstellen, Installieren oder Überprüfen des GitHub-App-Berechtigungsumfangs
Azure Key Vault (ein Dienst zur sicheren Verwaltung kryptografischer Schlüssel) Ein Tresor, in dem Sie den privaten Schlüssel der GitHub App speichern können
Verwaltete Identität Möglichkeit, der verwalteten Identität des Agents die Rolle Key Vault Secrets User zuzuweisen

Erstellen einer GitHub-App

Wenn Sie bereits über eine GitHub App mit den richtigen Berechtigungen verfügen, fahren Sie mit Speichern Sie den privaten Schlüssel in Azure Key Vault fort.

  1. Wechseln Sie zu Ihrem GitHub-Host:
    • : Wechseln Sie zu Ihrer Organisation SettingsDeveloper-Einstellungen<>/c4>GitHub AppsNeue GitHub App
    • <TENANT>.ghe.com: Derselbe Pfad in Ihrer GHE-Instanz
  2. Füllen Sie die App-Details aus:
    • GitHub App-Name z. B. sre-agent-reader
    • Homepage-URL: https://sre.azure.com
    • Webhook: Entfernen Sie das Häkchen bei Aktiv (der Agent verwendet keine Webhooks)
  3. Legen Sie unter "Berechtigungen" Folgendes fest:
    • Repositoryberechtigungen > Inhalt: Schreibgeschützt (erforderlich)
    • Repositoryberechtigungen > Metadaten: Schreibgeschützt (automatisch ausgewählt)
    • Fügen Sie optional Lesezugriff auf Issues und Pull requests hinzu.
  4. Wählen Sie unter Wo kann diese GitHub App installiert werden? wählen Sie Only auf diesem Konto aus.
  5. Wählen Sie "GitHub-App erstellen" aus.
  6. Beachten Sie die Client-ID , die auf der Seite mit den App-Einstellungen angezeigt wird.

Installieren der GitHub-App

  1. Wählen Sie auf der Seite GitHub App-Einstellungen Install App in der linken Randleiste aus.
  2. Wählen Sie Ihre Organisation aus.
  3. Wählen Sie alle Repositorys aus, oder wählen Sie bestimmte Repositorys aus.
  4. Wählen Sie Installieren aus.

Generieren eines privaten GitHub App-Schlüssels

  1. Scrollen Sie auf der Seite GitHub App-Einstellungen zu Private-Schlüssel.
  2. Wählen Sie "Privaten Schlüssel generieren" aus.
  3. Eine .pem Datei wird heruntergeladen. Diese Datei ist der private RSA-Schlüssel, den der Agent zur Authentifizierung verwendet.

Vorsicht

Halten Sie das PEM sicher. Sie laden sie im nächsten Schritt in Key Vault hoch. Committen Sie es nicht in ein Repository, und teilen Sie es nicht.

Speichern des privaten Schlüssels in Azure Key Vault

  1. Öffnen Sie das Azure-Portal, und wechseln Sie zu Ihrem Key Vault.
  2. Wechseln Sie zu "Geheime Schlüssel>generieren/importieren".
  3. Legen Sie den Namen fest (z. B sre-agent-github-app-key. ), und fügen Sie den vollständigen PEM-Inhalt als Wert (einschließlich -----BEGIN RSA PRIVATE KEY----- und -----END RSA PRIVATE KEY----- Kopfzeilen) ein.
  4. Wählen Sie "Erstellen" aus.
  5. Öffnen Sie das Geheimnis, wählen Sie die aktuelle Version aus und kopieren Sie den Geheimnisbezeichner-URI:
https://myvault.vault.azure.net/secrets/my-github-app-key/<VERSION>

Tip

Versionierte vs. nicht versionierte URI: Sie können die versionierte URI (mit dem Suffix /<VERSION>) verwenden, um eine bestimmte Schlüsselversion festzulegen, oder die Version weglassen, um immer die neueste Version zu verwenden. Verwenden Sie den unversionierten URI, sodass der Agent beim Drehen des Schlüssels automatisch die neue Version auswählt, ohne den URI zu aktualisieren.

Key Vault Zugriff auf die Agent-Identität gewähren

  1. Öffnen Sie im Azure-Portal Key Vault>Access control (IAM).
  2. Weisen Sie Key Vault Secrets User der verwalteten Identität des Agents zu.
  3. Warten Sie, bis die Rollenzuweisung wirksam wird.

Konfigurieren der BYO-App im Codezugriff

  1. Öffnen Sie Ihren Agenten im Portal.
  2. Wechseln Sie zu Builder>Code Access.
  3. Wählen Sie "Repositorys hinzufügen" aus.
  4. Wählen Sie GitHub aus, und geben Sie den Host ein:
    • github.com für öffentliches GitHub
    • <TENANT>.ghe.com für Enterprise Cloud
  5. Weiter zur Authentifizierung.
  6. Wählen Sie Bring Your own GitHub App aus.
  7. Eintreten:
    • Client-ID
    • URI des Geheimnisses für den privaten Schlüssel (Key Vault)
    • Optionale Key Vault-Identität (oder die systemseitig zugewiesene beibehalten)
  8. Wählen Sie Verbinden aus.

Der Assistent überprüft Ihre Anmeldeinformationen. Bei erfolgreicher Ausführung wird Connected als GitHub App mit einem grünen Häkchen angezeigt.

Note

Wenn Sie eine *.ghe.com-Domäne als Host eingeben, wählt der Assistent automatisch Bring your own GitHub App aus. OAuth und PAT sind für GHE-Hosts nicht verfügbar.

Hinzufügen von Repositorys und Überprüfen der Verbindung

  1. Wählen Sie Repositories aus und speichern Sie.
  2. Bestätigen Sie, dass die Codezugriffskarte den verbundenen Host und den Authentifizierungstyp GitHubAppanzeigt.
  3. Testen im Chat:
Get me recent issues from owner/repo.

Verwaltete Identität pro App für mehrere GitHub-Apps

Standardmäßig verwendet der Agent seine system zugewiesene verwaltete Identität, um den privaten Schlüssel aus Key Vault zu lesen. Wenn Sie mehrere GitHub Apps verwalten (z. B. eine pro GHE-Instanz), können Sie jeder App eine andere benutzer zugewiesene verwaltete Identität zuweisen. Dieser Ansatz bietet Sicherheitsisolierung, da jede Identität nur Zugriff auf ihr eigenes Key Vault-Geheimnis hat.

Wählen Sie die Identität im Dropdownmenü Key Vault Identity während des Konfigurationsschritts aus.

Multihostunterstützung für GitHub-Verbindungen

Sie können mehrere GitHub Hosts mit demselben Agent verbinden. Jeder Host verfügt über eine unabhängige Authentifizierung:

  • github.com → OAuth-, PAT- oder BYO-App
  • contoso.ghe.com → BYO-App
  • engineering.ghe.com → BYO-App (mit einer anderen GitHub App)

Das Trennen eines Hosts hat keine Auswirkungen auf andere.

Troubleshooting

Symptom Wahrscheinliche Ursache Beheben
Fehler bei der Authentifizierungsüberprüfung Falsche Client-ID oder falscher Host Überprüfen Sie, ob die App auf demselben Host erstellt wurde, der in Code Access eingegeben wurde.
Secret lesen schlägt fehl Fehlende Key Vault RBAC- oder Zugriffsrichtlinie Weisen Sie der Agentidentität die Rolle Schlüsseltresor-Geheimnisbenutzer zu.
Repo zeigt im Codezugriff Fehlgeschlagen an Fehlende App-Berechtigungen oder Installationsbereich Überprüfen Sie Metadaten: Lesen + Inhalte: Lesen und Installationsumfang.
Chat-Ausgaben funktionieren, aber der Code Access schlägt fehl Endpunkt-/Pfadüberprüfungen unterscheiden sich Führen Sie den Verbindungstest erneut aus, und überprüfen Sie die Metadatenberechtigung.

Nächster Schritt