Configurer le connecteur d’application BYO GitHub dans l’agent SRE Azure

Connectez votre agent à GitHub à l’aide d’une application GitHub que vous fournissez vous-même, une identité de service que votre organisation enregistre avec des informations d’identification adossées à Key Vault.

Important

Ce tutoriel configure l’accès basé sur l’application à vos référentiels GitHub à l’aide d’une application BYO GitHub avec des informations d’identification Key Vault sauvegardées. Toutes les opérations sont attribuées à votre identité d’application, et non à un utilisateur individuel.

Quand utiliser l’application BYO

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 effectuez une connexion avec les *.ghe.com référentiels (obligatoire).
  • Vous souhaitez un accès basé sur un jeton d’installation plutôt que des jetons utilisateur.

Prerequisites

  • Exécuter l’agent avec le rôle Administrateur ou Utilisateur standard
  • Application GitHub créée sur votre hôte cible (github.com ou *.ghe.com)
  • Accès administrateur à l’organisation ou au dépôt GitHub (pour créer, installer ou vérifier la portée de l’application GitHub)
  • Clé privée d’application stockée dans Azure Key Vault en tant que secret
  • Identité gérée de l’agent avec le rôle Utilisateur des secrets Key Vault sur ce coffre

Étape 1 : Créer une application GitHub

Si vous disposez déjà d’une application GitHub avec les autorisations appropriées, passez à l’étape 2.

  1. Accédez à votre hôte GitHub :
    • github.com: Accédez à votre organisation, puis sélectionnez Paramètres>du développeur>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 contoso-sre-agent-reader , (préfixe avec le nom de votre organisation pour éviter les conflits).
    • URL de la page d’accueil : https://sre.azure.com.
    • Webhook : décochez Active (l’agent n’utilise pas de webhooks).
  3. Sous Autorisations, définissez :
    • Autorisations > de référentiel Contenu : en lecture seule (obligatoire).
    • Autorisations > de référentiel Métadonnées : lecture seule (sélectionnée automatiquement).
    • Ajoutez éventuellement un accès en lecture à Issues et à Pull requests.
  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 paramètres de l’application (commence par Iv..., il est différent de l’ID d’application numérique).

Installer le 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. Choisissez tous les référentiels ou sélectionnez des dépôts spécifiques.
  4. Sélectionnez Installer.

Étape 2 : Générer une clé privée

  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.

Warning

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

Étape 3 : Stocker une clé privée dans 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

Utilisez l’URI versionné (avec le suffixe /<version>) pour pointer vers une version de clé spécifique, ou omettez la version pour toujours utiliser la version la plus récente. éléments non versionnés recommandés. Lorsque vous faites pivoter la clé, l’agent récupère automatiquement la nouvelle version sans mettre à jour l’URI.

Étape 4 : Accorder Key Vault accès à l’identité de l’agent

  1. Dans Azure portail, ouvrez votre Key Vault et accédez au contrôle d’accès (IAM).
  2. Attribuez Key Vault Secrets User à l’identité managée de l’agent.
  3. Attendez la propagation de l’attribution de rôle.

Étape 5 : Configurer BYO App dans Code Access

  1. Ouvrez votre assistant.
  2. Accédez à Builder>Code Access.

Capture d’écran de la page Accès au code sous Navigation du Générateur dans Azure Agent SRE.

  1. Sélectionnez Ajouter des référentiels.

  2. Choisissez GitHub et entrez l’hôte :

    • github.com pour GitHub public.
    • <tenant>.ghe.com pour Enterprise Cloud.
  3. Continuez à s’authentifier.

  4. Sélectionnez Bring your own GitHub App.

    Capture d’écran du formulaire d’authentification de l’application BYO GitHub montrant l’ID client et les champs d’URI Key Vault.

  5. Entrez :

    • 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)
  6. 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.

Capture d’écran de l’état de réussite, « Connecté en tant qu’application GitHub » avec une coche verte.

Note

Si vous voyez la coche verte et la mention Connecté en tant qu’application GitHub, vos informations d’identification sont valides. En cas d’échec de connexion, vérifiez votre ID client, Key Vault URI et les autorisations d’identité managée.

Si l’accès au code ne s’ouvre pas à partir du volet de navigation gauche, actualisez la page de l’agent, développez à nouveau le Générateur et réessayez.

Important

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.

Étape 6 : Ajouter des référentiels et vérifier

  1. Sélectionnez les référentiels et enregistrez.

    Capture d’écran de l’étape de sélection du dépôt montrant les référentiels disponibles à ajouter.

  2. Vérifiez que la carte d’accès au code affiche l’hôte connecté et le type GitHubAppd’authentification.

    Capture d’écran de la page d’accès au code montrant l’hôte connecté GitHub avec le type d’authentification GitHubApp.

  3. Testez l’accès au code dans la conversation :

What files are in the root of owner/repo?

Si vous avez également accordé l’autorisation Issues à votre application GitHub, vérifiez les opérations sur les issues :

List recent issues from owner/repo.

Identité managée par application

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), attribuez une identité managée affectée par l’utilisateur à 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 Identité Key Vault à l’étape 5.

Prise en charge de plusieurs hôtes pour les connecteurs GitHub

Vous pouvez connecter plusieurs hôtes GitHub au même agent. Chaque hôte dispose de sa propre authentification :

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

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

Troubleshooting

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 Accorder le rôle Utilisateur des secrets Key Vault à l’identité de l’agent. Si vous utilisez les stratégies d’accès de Key Vault, accordez l’autorisation Get sur les secrets.
Le référentiel affiche Échec dans Code Access Autorisations d’application manquantes ou étendue d’installation Vérifier les métadonnées : Lecture + Contenu : Étendue de lecture et d’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.