{"meta":{"title":"ワークフローでの認証に GITHUB_TOKEN を使用する","intro":"GITHUB_TOKENを使用して、GitHub Actionsの代わりに認証する方法について説明します。","product":"GitHub Actions","breadcrumbs":[{"href":"/ja/enterprise-server@3.17/actions","title":"GitHub Actions"},{"href":"/ja/enterprise-server@3.17/actions/tutorials","title":"チュートリアル"},{"href":"/ja/enterprise-server@3.17/actions/tutorials/authenticate-with-github_token","title":"GITHUB_TOKEN を使用して認証を行う"}],"documentType":"article"},"body":"# ワークフローでの認証に GITHUB_TOKEN を使用する\n\nGITHUB_TOKENを使用して、GitHub Actionsの代わりに認証する方法について説明します。\n\nこのチュートリアルでは、トークンをアクションに渡す例、API 要求を行う方法、セキュリティで保護された自動化のためのアクセス許可を構成する例など、`GITHUB_TOKEN` ワークフローで認証にGitHub Actionsを使用する方法について説明します。\n\n参考情報については、「[GitHub Actions　のワークフロー構文](/ja/enterprise-server@3.17/actions/reference/workflows-and-actions/workflow-syntax#permissions)」をご覧ください。\n\n## ワークフローでの `GITHUB_TOKEN` の使用\n\n`GITHUB_TOKEN`は、シークレットを参照するための標準構文 (`${{ secrets.GITHUB_TOKEN }}`) を使用して使用できます。\n`GITHUB_TOKEN`を使用する例としては、アクションへの入力としてトークンを渡すことや、トークンを使用して認証された GitHub API 要求を行う場合などがあります。\n\n> \\[!IMPORTANT]\n> ワークフローで `GITHUB_TOKEN` がアクションに明示的に渡されない場合でも、アクションでは `github.token` コンテキストを介して `GITHUB_TOKEN` にアクセスできます。 セキュリティを強化するには、`GITHUB_TOKEN` に付与されるアクセス許可を制限することにより、アクションに必要な最小限のアクセスのみが含まれるようにする必要があります。 詳しくは、「[GitHub Actions　のワークフロー構文](/ja/enterprise-server@3.17/actions/reference/workflows-and-actions/workflow-syntax#permissions)」をご覧ください。\n\n### 例 1: 入力として `GITHUB_TOKEN` を渡す\n\nこのワークフロー例では、[GitHub CLI](/ja/enterprise-server@3.17/actions/how-tos/write-workflows/choose-what-workflows-do/use-github-cli) を使用しており、`GITHUB_TOKEN` 入力パラメーターの値として `GH_TOKEN` が必要です。\n\n```yaml copy\nname: Open new issue\non: workflow_dispatch\n\njobs:\n  open-issue:\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n      issues: write\n    steps:\n      - run: |\n          gh issue --repo ${{ github.repository }} \\\n            create --title \"Issue title\" --body \"Issue body\"\n        env:\n          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n```\n\n### 例 2: REST API を呼び出す\n\n`GITHUB_TOKEN` を使用して、認証済みの API 呼び出しを行うことができます。 このワークフロー例では、 GitHub REST API を使用して問題を作成します。\n\n```yaml\nname: Create issue on commit\n\non: [ push ]\n\njobs:\n  create_issue:\n    runs-on: ubuntu-latest\n    permissions:\n      issues: write\n    steps:\n      - name: Create issue using REST API\n        run: |\n          curl --request POST \\\n          --url http(s)://HOSTNAME/api/v3/repos/${{ github.repository }}/issues \\\n          --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \\\n          --header 'content-type: application/json' \\\n          --data '{\n            \"title\": \"Automated issue for commit: ${{ github.sha }}\",\n            \"body\": \"This issue was automatically created by the GitHub Action workflow **${{ github.workflow }}**. \\n\\n The commit hash was: _${{ github.sha }}_.\"\n            }' \\\n          --fail\n```\n\n## `GITHUB_TOKEN` のアクセス許可の変更\n\nワークフロー全体または個々のジョブに対する `permissions` のアクセス許可を変更するには、ワークフロー ファイルで `GITHUB_TOKEN` キーを使います。 これにより、ワークフローまたはジョブに最低限必要な権限を設定できます。 優れたセキュリティ プラクティスとして、`GITHUB_TOKEN` に必要最小限のアクセス権を付与することをお勧めします。\n\n使用できるアクセス許可とパラメーター化された名前の一覧については、「[個人用アクセス トークンを管理する](/ja/enterprise-server@3.17/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#account-permissions)」を参照してください。\n\nこの記事で前に示した 2 つのワークフロー例では、`permissions` キーがジョブ レベルで使われています。\n\n## 追加の権限を付与する\n\n`GITHUB_TOKEN`で使用できないアクセス許可を必要とするトークンが必要な場合は、GitHub Appを作成し、ワークフロー内にインストール アクセス トークンを生成します。 詳しくは、「[GitHub Actions ワークフローでGitHub アプリを使用して認証済み API 要求を作成する](/ja/enterprise-server@3.17/apps/creating-github-apps/authenticating-with-a-github-app/making-authenticated-api-requests-with-a-github-app-in-a-github-actions-workflow)」をご覧ください。 または、 personal access tokenを作成し、それをシークレットとしてリポジトリに格納し、 `${{ secrets.SECRET_NAME }}` 構文を使用してワークフローでトークンを使用することもできます。 詳細については、「[個人用アクセス トークンを管理する](/ja/enterprise-server@3.17/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)」および「[GitHub Actions でのシークレットの使用](/ja/enterprise-server@3.17/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets)」を参照してください。\n\n## 次のステップ\n\n* [GITHUB\\_TOKEN](/ja/enterprise-server@3.17/actions/concepts/security/github_token)\n* [GitHub Actions　のワークフロー構文](/ja/enterprise-server@3.17/actions/reference/workflows-and-actions/workflow-syntax#permissions)"}