{"meta":{"title":"Authentification d'ARC pour l'API GitHub","intro":"Authentifiez Actions Runner Controller auprès de l’API GitHub.","product":"GitHub Actions","breadcrumbs":[{"href":"/fr/actions","title":"GitHub Actions"},{"href":"/fr/actions/how-tos","title":"Guides pratiques"},{"href":"/fr/actions/how-tos/manage-runners","title":"Gérer les exécuteurs"},{"href":"/fr/actions/how-tos/manage-runners/use-actions-runner-controller","title":"Actions Runner Controller"},{"href":"/fr/actions/how-tos/manage-runners/use-actions-runner-controller/authenticate-to-the-api","title":"S’authentifier auprès de l’API"}],"documentType":"article"},"body":"# Authentification d'ARC pour l'API GitHub\n\nAuthentifiez Actions Runner Controller auprès de l’API GitHub.\n\nVous pouvez authentifier Actions Runner Controller (ARC) auprès de l’API GitHub à l’aide d’un GitHub App ou d’un personal access token (classic).\n\n> \\[!NOTE]\n> Vous ne pouvez pas vous authentifier à l’aide d’un GitHub App pour les runners au niveau de l’entreprise. Pour plus d’informations, consultez « [Gestion de l’accès aux exécuteurs auto-hébergés à l’aide de groupes](/fr/actions/how-tos/manage-runners/self-hosted-runners/manage-access) ».\n\n## Authentification ARC avec un GitHub App\n\n1. Créez un élément GitHub App appartenant à une organisation. Pour plus d’informations, consultez « [Inscription d’une application GitHub](/fr/apps/creating-github-apps/registering-a-github-app/registering-a-github-app) ». Configurez le GitHub App comme suit.\n\n   1. Pour « URL de la page d’accueil », entrez `https://github.com/actions/actions-runner-controller`.\n\n   2. Sous « Autorisations », cliquez sur **Autorisations du dépôt**. Utilisez ensuite les menus déroulants pour sélectionner les autorisations d’accès suivantes.\n      * **Administration** : Lecture et écriture\n\n        > \\[!NOTE]\n\n`Administration: Read and write` n’est requis que lors de la configuration de Actions Runner Controller pour un enregistrement au niveau du dépôt. Il n’est pas nécessaire de s’inscrire au niveau de l’organisation.\n\n```\n  * **Métadonnées** : Lecture seule\n```\n\n1. Sous « Autorisations », cliquez sur **Autorisations de l’organisation**. Utilisez ensuite les menus déroulants pour sélectionner les autorisations d’accès suivantes.\n   * **Exécuteurs auto-hébergés :** Lecture et écriture\n\n2. Après avoir créé GitHub App, dans la page de GitHub App, notez la valeur « ID d’application ». Vous utiliserez cette valeur plus tard.\n\n3. Sous « Clés privées », cliquez sur **Générer une clé privée** et enregistrez le fichier `.pem`. Vous utiliserez cette clé plus tard.\n\n4. Dans le menu en haut à gauche de la page, cliquez sur **Installer l’application**, puis à côté de votre organisation, cliquez sur **Installer** pour installer l’application dans votre organisation.\n\n5. Après avoir confirmé les autorisations d’installation sur votre organisation, notez l’ID d’installation de l’application. Vous le réutiliserez ultérieurement. Vous trouverez l’ID d’installation de l’application dans la page d’installation de l’application, qui a le format d’URL suivant :\n\n   `https://github.com/organizations/ORGANIZATION/settings/installations/INSTALLATION_ID`\n\n6. Enregistrez l’ID de l’application, l’ID d’installation et le fichier de clé privée `.pem` téléchargé via les étapes précédentes dans Kubernetes en tant que secret.\n\n   Pour créer un secret Kubernetes avec les valeurs de vos GitHub App, exécutez la commande suivante.\n\n   > \\[!NOTE]\n   > Créez le secret dans le même espace de noms que celui où le graphique `gha-runner-scale-set` est installé. Dans cet exemple, l’espace de noms est `arc-runners`, afin de correspondre à la documentation de démarrage rapide. Pour plus d’informations, consultez « [Prise en main du contrôleur Runner Actions](/fr/actions/tutorials/use-actions-runner-controller/get-started#configuring-a-runner-scale-set) ».\n\n   ```bash copy\n   kubectl create secret generic pre-defined-secret \\\n      --namespace=arc-runners \\\n      --from-literal=github_app_id=123456 \\\n      --from-literal=github_app_installation_id=654321 \\\n      --from-literal=github_app_private_key='-----BEGIN RSA PRIVATE KEY-----********'\n   ```\n\n   Ensuite, à l’aide de la propriété `githubConfigSecret` dans votre copie du fichier [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml), transmettez le nom du secret en tant que référence.\n\n   ```yaml\n   githubConfigSecret: pre-defined-secret\n   ```\n\nPour obtenir d’autres options de configuration de Helm, consultez [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml) dans le référentiel ARC.\n\n## Authentification ARC avec un personal access token (classic)\n\nARC peut utiliser un personal access tokens (classic) pour enregistrer des runners auto-hébergés.\n\n1. Créez une personal access token (classic) avec les étendues requises. Les étendues requises diffèrent selon que vous enregistrez les runners au niveau du dépôt ou de l’organisation. Pour plus d’informations sur la création d’un personal access token (classic), consultez [Gestion de vos jetons d’accès personnels](/fr/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic).\n\n   Voici la liste des étendues personal access token requises pour les runners ARC.\n\n   * Exécuteurs de dépôt : `repo`\n   * Runners d’organisation : `admin:org`\n\n2. Pour créer un secret Kubernetes avec la valeur de votre personal access token (classic), utilisez la commande suivante.\n\n   > \\[!NOTE]\n   > Créez le secret dans le même espace de noms que celui où le graphique `gha-runner-scale-set` est installé. Dans cet exemple, l’espace de noms est `arc-runners`, afin de correspondre à la documentation de démarrage rapide. Pour plus d’informations, consultez « [Prise en main du contrôleur Runner Actions](/fr/actions/tutorials/use-actions-runner-controller/get-started#configuring-a-runner-scale-set) ».\n\n   ```bash copy\n   kubectl create secret generic pre-defined-secret \\\n      --namespace=arc-runners \\\n      --from-literal=github_token='YOUR-PAT'\n   ```\n\n3. Dans votre copie du fichier [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml), passez le nom du secret en tant que référence.\n\n   ```yaml\n   githubConfigSecret: pre-defined-secret\n   ```\n\n   Pour obtenir d’autres options de configuration de Helm, consultez [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml) dans le référentiel ARC.\n\n## Authentification ARC avec un fine-grained personal access token\n\nARC peut utiliser un fine-grained personal access tokens pour enregistrer des runners auto-hébergés.\n\n1. Créez une fine-grained personal access token avec les étendues requises. L’étendue requise dépend du niveau auquel les runners sont enregistrés, qu’il s’agisse du référentiel ou de l’organisation. Pour plus d’informations sur la création d’un fine-grained personal access token, consultez [Gestion de vos jetons d’accès personnels](/fr/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token).\n\n   Voici la liste des étendues personal access token requises pour les runners ARC.\n\n   * Exécuteurs de dépôt :\n     * **Administration** : Lecture et écriture\n\n   * Runners d’organisation :\n     * **Administration :** Lire\n     * **Exécuteurs auto-hébergés :** Lecture et écriture\n\n2. Pour créer un secret Kubernetes avec la valeur de votre fine-grained personal access token, utilisez la commande suivante.\n\n   > \\[!NOTE]\n   > Créez le secret dans le même espace de noms que celui où le graphique `gha-runner-scale-set` est installé. Dans cet exemple, l’espace de noms est `arc-runners`, afin de correspondre à la documentation de démarrage rapide. Pour plus d’informations, consultez « [Prise en main du contrôleur Runner Actions](/fr/actions/tutorials/use-actions-runner-controller/get-started#configuring-a-runner-scale-set) ».\n\n   ```bash copy\n   kubectl create secret generic pre-defined-secret \\\n      --namespace=arc-runners \\\n      --from-literal=github_token='YOUR-PAT'\n   ```\n\n3. Dans votre copie du fichier [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml), passez le nom du secret en tant que référence.\n\n   ```yaml\n   githubConfigSecret: pre-defined-secret\n   ```\n\n   Pour obtenir d’autres options de configuration de Helm, consultez [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml) dans le référentiel ARC.\n\n## Authentification ARC à l’aide de secrets de coffre-fort\n\n> \\[!NOTE]\n> L’intégration du coffre-fort est actuellement proposée en préversion publique avec la prise en charge de Key Vault.\n\nÀ compter de gha-runner-scale-set version 0.12.0, ARC prend en charge la récupération des informations d’identification GitHub à partir d’un coffre externe. La configuration de l’intégration du coffre-fort s’effectue par ensemble de scale de runners. Vous pouvez ainsi exécuter certains ensembles de scale avec des secrets Kubernetes, tandis que d’autres utilisent des secrets issus du coffre-fort, selon vos exigences de sécurité et d’exploitation.\n\n### Activation de l’intégration Vault\n\nPour activer l’intégration du coffre-fort pour un ensemble de scale de runners :\n\n1. **Définissez le champ `githubConfigSecret`** dans votre fichier `values.yaml` sur le nom de la clé secrète stockée dans votre coffre. Cette valeur doit être une chaîne.\n2. <sup>c1</sup>Retirez les commentaires et configurez la section <c0 /></sup> dans votre fichier <c2 /> avec les informations relatives au fournisseur et aux détails d’accès appropriés.\n3. **Fournissez le certificat requis** (`.pfx`) au contrôleur et à l’écouteur. Pour ce faire, vous pouvez : \\*Regénérer l’image du contrôleur en y incluant le certificat, ou \\*Monter le certificat en tant que volume dans le contrôleur et l’écouteur à l’aide des champs `listenerTemplate` et `controllerManager`.\n\n### Format du secret\n\nLe secret stocké dans Azure Key Vault doit être au format JSON. La structure dépend du type d’authentification que vous utilisez :\n\n#### Exemple : jeton GitHub\n\n```json\n{\n  \"github_token\": \"TOKEN\"\n}\n```\n\n#### Exemple : application GitHub\n\n```json\n{\n  \"github_app_id\": \"APP_ID_OR_CLIENT_ID\",\n  \"github_app_installation_id\": \"INSTALLATION_ID\",\n  \"github_app_private_key\": \"PRIVATE_KEY\"\n}\n```\n\n### Configuration de `values.yaml` pour l’intégration de Vault\n\nLe certificat est stocké dans un fichier .pfx et monté dans le conteneur à l’emplacement /akv/cert.pfx. Voici un exemple de configuration de la section keyVault pour utiliser ce certificat pour l’authentification :\n\n```yaml\nkeyVault:\n  type: \"azure_key_vault\"\n  proxy:\n    https:\n      url: \"PROXY_URL\"\n      credentialSecretRef: \"PROXY_CREDENTIALS_SECRET_NAME\"\n    http: {}\n    noProxy: []\n  azureKeyVault:\n    clientId: <AZURE_CLIENT_ID>\n    tenantId: <AZURE_TENANT_ID>\n    url: <AZURE_VAULT_URL>\n    certificatePath: \"/akv/cert.pfx\"\n```\n\n### Fourniture du certificat au contrôleur et à l’écouteur\n\nARC requiert un certificat `.pfx` pour s’authentifier auprès du coffre-fort. Ce certificat doit être mis à la disposition des composants contrôleur et écouteur lors de l’installation du contrôleur.\nVous pouvez le faire en montant le certificat comme volume à l’aide des champs `controllerManager` et `listenerTemplate` dans votre fichier `values.yaml` :\n\n```yaml\nvolumes:\n  - name: cert-volume\n    secret:\n      secretName: my-cert-secret\nvolumeMounts:\n  - mountPath: /akv\n    name: cert-volume\n    readOnly: true\n\nlistenerTemplate:\n  volumeMounts:\n    - name: cert-volume\n      mountPath: /akv/certs\n      readOnly: true\n  volumes:\n    - name: cert-volume\n      secret:\n        secretName: my-cert-secret\n```\n\nLe code ci-dessous est un exemple de fichier d'ensemble d'échelles `values.yml`.\n\n```yaml\nlistenerTemplate:\n  spec:\n    containers:\n      - name: listener\n        volumeMounts:\n          - name: cert-volume\n            mountPath: /akv\n            readOnly: true\n    volumes:\n      - name: cert-volume\n        secret:\n          secretName: my-cert-secret\n```\n\n## Mentions légales\n\nCertaines parties ont été adaptées à partir de <https://github.com/actions/actions-runner-controller/> sous la licence Apache-2.0 :\n\n```text\nCopyright 2019 Moto Ishizawa\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```"}