Connecter des dépôts GitHub Enterprise Cloud à l’agent SRE Azure

Important

Cette fonctionnalité de Azure agent SRE est actuellement en préversion. Consultez les Conditions d’utilisation supplémentaires pour les préversions Microsoft Azure pour les conditions légales qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou qui ne sont pas encore publiées en disponibilité générale.

Connectez des référentiels hébergés sur GitHub Enterprise Cloud (<TENANT>.ghe.com) ou github.com à votre agent SRE Azure à l’aide d’une application GitHub BYO (Bring Your Own). L'agent génère des jetons d'installation à courte durée de vie à partir de la clé privée de votre application, qui est stockée dans Azure Key Vault et n'est jamais copiée.

Note

BYO GitHub App fonctionne pour les hôtes github.com et *.ghe.com. Pour github.com avec OAuth ou PAT, consultez Set up GitHub connector.

Quand utiliser l’authentification par l’application BYO GitHub

Utilisez l’application BYO quand :

  • Votre organisation nécessite des contrôles d’authentification et de garde de clé basés sur l’application.
  • Vous êtes en train de connecter des référentiels *.ghe.com (nécessaire, car OAuth et les PAT ne sont pas disponibles pour les instances GHE).
  • Vous souhaitez un accès basé sur un jeton d’installation plutôt que des jetons utilisateur.

Prerequisites

Requirement Détails
Agent Azure SRE Agent en cours d’exécution avec le rôle Administrateur ou Utilisateur standard
application GitHub Application GitHub créée sur votre hôte cible (github.com ou <TENANT>.ghe.com)
accès administrateur GitHub Accès d’administrateur de l’organisation ou du dépôt pour créer, installer ou vérifier la portée de l’application GitHub
Azure Key Vault Coffre dans lequel vous pouvez stocker la clé privée de l'application GitHub
Identité gérée Possibilité d’attribuer le rôle Key Vault Secrets User à l’identité managée de l’agent

Créer une application GitHub

Si vous disposez déjà d’une application GitHub avec les autorisations appropriées, passez à Store la clé privée dans Azure Key Vault.

  1. Accédez à votre hôte GitHub :
    • github.com : Accédez aux paramètres de votre organisation >Settings>Developer>GitHub Apps>New GitHub App
    • <TENANT>.ghe.com: Chemin d’accès identique sur votre instance GHE
  2. Renseignez les détails de l’application :
    • GitHub Nom de l’application : par exemple, sre-agent-reader
    • URL de la page d’accueil : https://sre.azure.com
    • Webhook : décocher Active (l’agent n’utilise pas de webhooks)
  3. Sous Autorisations, définissez :
    • Autorisations > de référentiel Contenu : lecture seule (obligatoire)
    • Autorisations du dépôt > Métadonnées : Lecture seule (sélectionnée automatiquement)
    • Si vous le souhaitez, ajoutez un accès en lecture à Problèmes et Demandes de tirage
  4. Sous Partout, cette application GitHub peut-elle être installée ?, sélectionnez Only sur ce compte.
  5. Sélectionnez Créer une application GitHub.
  6. Notez l’ID client affiché dans la page des paramètres de l’application.

Installer l’application GitHub

  1. Dans la page paramètres de l’application GitHub, sélectionnez Installer l’application dans la barre latérale gauche.
  2. Sélectionnez votre organisation.
  3. Sélectionnez Tous les référentiels ou sélectionnez des dépôts spécifiques.
  4. Sélectionnez Installer.

Générer une clé privée d’application GitHub

  1. Sur la page des paramètres de GitHub App, faites défiler la page jusqu’à Clés privées.
  2. Sélectionnez Générer une clé privée.
  3. Un .pem fichier est téléchargé. Ce fichier est la clé privée RSA utilisée par l’agent pour s’authentifier.

Caution

Conservez le PEM en sécurité. Vous le chargez dans Key Vault à l’étape suivante. Ne le committez pas dans un dépôt et ne le partagez pas.

Stocker la clé privée dans Azure Key Vault

  1. Ouvrez le portail Azure et accédez à votre Key Vault.
  2. Accédez à Secrets>Generate/Import.
  3. Définissez le nom (par exemple sre-agent-github-app-key) et collez le contenu PEM complet en tant que valeur (y compris -----BEGIN RSA PRIVATE KEY----- et -----END RSA PRIVATE KEY----- en-têtes).
  4. Cliquez sur Créer.
  5. Ouvrez le secret, sélectionnez la version en cours et copiez l’URI de l’identificateur du secret :
https://myvault.vault.azure.net/secrets/my-github-app-key/<VERSION>

Tip

URI versionné ou non versionné : vous pouvez utiliser l’URI avec version (avec /<VERSION> suffixe) pour épingler à une version de clé spécifique ou omettre la version pour toujours utiliser la dernière version. Utilisez l’URI non versionné afin que lorsque vous faites pivoter la clé, l’agent récupère automatiquement la nouvelle version sans mettre à jour l’URI.

Autoriser l’accès à un coffre de clés à une identité d’agent

  1. Dans le portail Azure, ouvrez Key Vault>Access control (IAM).
  2. Attribuez Key Vault Secrets User à l’identité managée de l’agent.
  3. Attendez que l’attribution de rôle prenne effet.

Configurer une application BYO pour l’accès au code

  1. Ouvrez votre agent dans le portail.
  2. Accédez à Builder>Code Access.
  3. Sélectionnez Ajouter des référentiels.
  4. Choisissez GitHub et entrez l’hôte :
    • github.com pour GitHub public
    • <TENANT>.ghe.com pour Enterprise Cloud
  5. Continuez à s’authentifier.
  6. Sélectionnez Bring your own GitHub App.
  7. Entrée:
    • ID du client
    • URI du secret de clé privée (Key Vault)
    • Identité Key Vault facultative (ou conserver l’identité affectée par le système)
  8. Sélectionnez Se connecter.

L’Assistant valide vos informations d’identification. En cas de réussite, vous voyez Connecté en tant qu’application GitHub avec une coche verte.

Note

Lorsque vous saisissez un domaine *.ghe.com comme hôte, l’assistant sélectionne automatiquement Bring your own GitHub App. OAuth et PAT ne sont pas disponibles pour les hôtes GHE.

Ajouter des référentiels et vérifier la connexion

  1. Sélectionnez les référentiels et enregistrez.
  2. Vérifiez que la carte d’accès au code affiche l’hôte connecté et le type GitHubAppd’authentification .
  3. Test dans la conversation :
Get me recent issues from owner/repo.

Identité managée par application pour plusieurs applications GitHub

Par défaut, l’agent utilise sa identité managée affectée par le système pour lire la clé privée à partir de Key Vault. Si vous gérez plusieurs applications GitHub (par exemple, une par instance GHE), vous pouvez attribuer une identité managée attribuée par l’utilisateur différente à chaque application. Cette approche offre une isolation de sécurité, car chaque identité a uniquement accès à son propre secret Key Vault.

Sélectionnez l’identité dans la liste déroulante Key Vault identité pendant l’étape de configuration.

Prise en charge de plusieurs hôtes pour les connexions à GitHub

Vous pouvez connecter plusieurs hôtes GitHub au même agent. Chaque hôte a une authentification indépendante :

  • github.com → application OAuth, PAT ou BYO
  • contoso.ghe.com → BYO App
  • engineering.ghe.com → application BYO (avec une autre application GitHub)

La déconnexion d’un hôte n’affecte pas les autres.

Résolution des problèmes

Symptôme Cause la plus probable Réparer
Échec de la validation de l’authentification ID client incorrect ou hôte incorrect Vérifiez que l’application a été créée sur le même hôte que celui indiqué dans Code Access.
Échec de la lecture du secret Stratégie d’accès ou Key Vault RBAC Accordez Utilisateur des secrets Key Vault à l’identité de l’agent.
Le référentiel affiche Échec dans Code Access Autorisations d’application manquantes ou étendue d’installation Vérifiez Métadonnées : Lecture + Contenu : Lecture et la portée de l’installation.
Les problèmes de conversation instantanée fonctionnent, mais Code Access ne fonctionne pas Les vérifications de point de terminaison/chemin diffèrent Réexécutez le test de connexion et vérifiez l’autorisation des métadonnées.

Étape suivante