{"meta":{"title":"Configuration d’OpenID Connect dans les fournisseurs de cloud","intro":"Utilisez OpenID Connect dans vos workflows pour vous authentifier auprès des fournisseurs de cloud.","product":"GitHub Actions","breadcrumbs":[{"href":"/fr/actions","title":"GitHub Actions"},{"href":"/fr/actions/how-tos","title":"Guides pratiques"},{"href":"/fr/actions/how-tos/secure-your-work","title":"Sécurisez votre travail"},{"href":"/fr/actions/how-tos/secure-your-work/security-harden-deployments","title":"Durcissement de la sécurité des déploiements"},{"href":"/fr/actions/how-tos/secure-your-work/security-harden-deployments/oidc-in-cloud-providers","title":"OIDC dans les fournisseurs de cloud"}],"documentType":"article"},"body":"# Configuration d’OpenID Connect dans les fournisseurs de cloud\n\nUtilisez OpenID Connect dans vos workflows pour vous authentifier auprès des fournisseurs de cloud.\n\n## Vue d’ensemble\n\nOpenID Connect (OIDC) permet à vos GitHub Actions flux de travail d’accéder aux ressources de votre fournisseur de cloud, sans avoir à stocker d’informations d’identification comme secrets de longue durée GitHub .\n\nPour utiliser OIDC, vous devez d’abord configurer votre fournisseur de cloud pour qu’il approuve GitHubl’OIDC en tant qu’identité fédérée, puis mettre à jour vos flux de travail pour s’authentifier à l’aide de jetons.\n\n## Prérequis\n\n* Pour découvrir les concepts de base de l’utilisation GitHub d’OpenID Connect (OIDC) et de son architecture et de ses avantages, consultez [OpenID Connect](/fr/actions/concepts/security/openid-connect).\n\n* Avant de continuer, vous devez planifier votre stratégie de sécurité pour veiller à ce que les jetons d’accès soient uniquement alloués de manière prévisible. Pour contrôler la façon dont votre fournisseur de cloud émet des jetons d’accès, vous **devez** définir au moins une condition, afin que les dépôts non approuvés ne puissent pas demander de jetons d’accès à vos ressources cloud. Pour plus d’informations, consultez [Informations de référence sur OpenID Connect](/fr/actions/reference/security/oidc#oidc-claims-used-to-define-trust-conditions-on-cloud-roles).\n\n## Mise à jour de votre GitHub Actions flux de travail\n\nPour mettre à jour vos workflows pour OIDC, vous devez apporter deux modifications à votre code YAML :\n\n1. Ajoutez des paramètres d’autorisations pour le jeton.\n2. Utilisez l’action officielle à partir de votre fournisseur de cloud pour échanger le jeton OIDC (JWT) afin d’obtenir un jeton d’accès cloud.\n\nSi votre fournisseur de cloud n’offre pas encore d’action officielle, vous pouvez mettre à jour vos workflows pour effectuer ces étapes manuellement.\n\n> \\[!NOTE]\n> Lorsque des environnements sont utilisés dans des workflows ou dans des stratégies OIDC, nous vous recommandons d’ajouter des règles de protection à l’environnement pour plus de sécurité. Par exemple, vous pouvez configurer des règles de déploiement sur un environnement pour restreindre les branches et balises pouvant être déployées dans l’environnement ou accéder aux secrets d’environnement. Pour plus d’informations, consultez « [Gestion des environnements pour le déploiement](/fr/actions/how-tos/deploy/configure-and-manage-deployments/manage-environments) ».\n\n### Ajout de paramètres d’autorisations\n\nL’exécution d’un travail ou d’un flux de travail nécessite un paramètre `permissions` avec [`id-token: write`](/fr/actions/tutorials/authenticate-with-github_token#modifying-the-permissions-for-the-github_token) pour permettre au fournisseur OIDC de GitHub créer un jeton Web JSON pour chaque exécution.\n\n> \\[!NOTE] Le paramètre `id-token: write` dans les autorisations du flux de travail ne donne pas au flux de travail l’autorisation de modifier ou d’écrire dans des ressources. Au lieu de cela, il permet uniquement au flux de travail de demander (récupérer) et d’utiliser (définir) un jeton OIDC pour une action ou une étape. Ce jeton est ensuite utilisé pour s’authentifier auprès de services externes à l’aide d’un jeton d’accès à courte durée de vie.\n\nPour plus d’informations sur les autorisations requises, les exemples de configuration et les scénarios avancés, consultez [Informations de référence sur OpenID Connect](/fr/actions/reference/security/oidc#workflow-permissions-for-the-requesting-the-oidc-token).\n\n### Utilisation d’actions officielles\n\nSi votre fournisseur de cloud a créé une action officielle pour utiliser OIDC avec GitHub Actions, il vous permet d’échanger facilement le jeton OIDC pour un jeton d’accès. Vous pouvez ensuite mettre à jour vos workflows afin d’utiliser ce jeton lors de l’accès aux ressources cloud.\n\nPar exemple, Alibaba Cloud a créé [`aliyun/configure-aliyun-credentials-action`](https://github.com/aliyun/configure-aliyun-credentials-action) pour une intégration via OIDC avec GitHub.\n\n## Utilisation d’actions personnalisées\n\nSi votre fournisseur de cloud n’a pas d’action officielle ou si vous préférez créer des scripts personnalisés, vous pouvez demander manuellement le jeton web JSON (JWT) auprès du GitHubfournisseur OIDC.\n\nSi vous n’utilisez pas d’action officielle, GitHub nous vous recommandons d’utiliser le kit de ressources Actions core. Vous pouvez également utiliser les variables d’environnement suivantes pour récupérer le jeton : `ACTIONS_ID_TOKEN_REQUEST_TOKEN`, `ACTIONS_ID_TOKEN_REQUEST_URL`.\n\nPour mettre à jour vos workflows à l’aide de cette approche, vous devez apporter trois modifications à votre code YAML :\n\n1. Ajoutez des paramètres d’autorisations pour le jeton.\n2. Ajoutez du code qui demande le jeton OIDC auprès du fournisseur OIDC de GitHub.\n3. Ajoutez du code qui échange le jeton OIDC avec votre fournisseur de cloud pour obtenir un jeton d’accès.\n\n### Demande du jeton JWT à l’aide du kit de ressources principal Actions\n\nL’exemple suivant montre comment utiliser `actions/github-script` avec le `core` kit de ressources pour demander le JWT auprès du GitHubfournisseur OIDC. Pour plus d’informations, consultez « [Création d’une action JavaScript](/fr/actions/tutorials/create-actions/create-a-javascript-action#adding-actions-toolkit-packages) ».\n\n```yaml\njobs:\n  job:\n    environment: Production\n    runs-on: ubuntu-latest\n    steps:\n    - name: Install OIDC Client from Core Package\n      run: npm install @actions/core@1.6.0 @actions/http-client\n    - name: Get Id Token\n      uses: actions/github-script@v8\n      id: idtoken\n      with:\n        script: |\n          let id_token = await core.getIDToken()\n          core.setOutput('id_token', id_token)\n```\n\n### Demande du jeton JWT à l’aide de variables d’environnement\n\nL’exemple suivant montre comment utiliser des variables d’environnement pour demander un jeton JSON Web Token.\n\nPour votre travail de déploiement, vous devez définir les paramètres de jeton en utilisant `actions/github-script` avec le kit de ressources `core`. Pour plus d’informations, consultez « [Création d’une action JavaScript](/fr/actions/tutorials/create-actions/create-a-javascript-action#adding-actions-toolkit-packages) ».\n\nPar exemple :\n\n```yaml\njobs:\n  job:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/github-script@v8\n      id: script\n      timeout-minutes: 10\n      with:\n        debug: true\n        script: |\n          const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN']\n          const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL']\n          core.setOutput('TOKEN', token.trim())\n          core.setOutput('IDTOKENURL', runtimeUrl.trim())\n```\n\nVous pouvez ensuite utiliser `curl` pour récupérer un JWT à partir du GitHub fournisseur OIDC. Par exemple :\n\n```yaml\n    - run: |\n        IDTOKEN=$(curl -H \"Authorization: Bearer ${{steps.script.outputs.TOKEN}}\" ${{steps.script.outputs.IDTOKENURL}}  -H \"Accept: application/json; api-version=2.0\" -H \"Content-Type: application/json\" -d \"{}\" | jq -r '.value')\n        echo $IDTOKEN\n        jwtd() {\n            if [[ -x $(command -v jq) ]]; then\n                jq -R 'split(\".\") | .[0],.[1] | @base64d | fromjson' <<< \"${1}\"\n                echo \"Signature: $(echo \"${1}\" | awk -F'.' '{print $3}')\"\n            fi\n        }\n        jwtd $IDTOKEN\n        echo \"idToken=${IDTOKEN}\" >> $GITHUB_OUTPUT\n      id: tokenid\n```\n\n### Obtention du jeton d’accès à partir du fournisseur de cloud\n\nVous devez présenter le jeton JWT OIDC à votre fournisseur de cloud afin d’obtenir un jeton d’accès.\n\nPour chaque déploiement, vos workflows doivent utiliser des actions de connexion cloud (ou des scripts personnalisés) qui récupèrent le jeton OIDC et le présentent à votre fournisseur de cloud. Le fournisseur de cloud valide ensuite les revendications dans le jeton. S’il réussit, il fournit un jeton d’accès cloud disponible uniquement pour cette exécution de travail. Le jeton d’accès fourni peut ensuite être utilisé par les actions suivantes dans le travail pour la connexion au cloud et le déploiement sur ses ressources.\n\nLes étapes d’échange du jeton OIDC pour un jeton d’accès varient pour chaque fournisseur de cloud.\n\n### Accès aux ressources dans votre fournisseur de cloud\n\nUne fois que vous avez obtenu le jeton d’accès, vous pouvez utiliser des scripts ou des actions cloud spécifiques pour vous authentifier auprès du fournisseur de cloud et déployer sur ses ressources. Ces étapes peuvent différer pour chaque fournisseur de cloud.\n\nPar exemple, Alibaba Cloud conserve ses propres instructions pour l’authentification OIDC. Pour plus d’informations, consultez [Vue d’ensemble du SSO basé sur l’OIDC](https://www.alibabacloud.com/help/en/ram/user-guide/overview-of-oidc-based-sso) dans la documentation Alibaba Cloud.\n\nEn outre, le temps d’expiration par défaut de ce jeton d’accès peut varier entre chaque cloud et peut être configurable du côté du fournisseur de cloud.\n\n## Pour aller plus loin\n\n* [Utilisation d’OpenID Connect avec des workflows réutilisables](/fr/actions/how-tos/secure-your-work/security-harden-deployments/oidc-with-reusable-workflows)\n* [Documentation de référence relative aux runners auto-hébergés](/fr/actions/reference/runners/self-hosted-runners)"}