About authentication to GitHub

GitHub における認証

前提として、GitHub のリソースへのアクセス方法は以下の方法がある。

  • ブラウザ
  • GitHub Desktop(もしくはその他のデスクトップアプリケーション)
  • API
  • コマンドライン

上記のそれぞれの方法で、以下の異なる認証モードをサポートする

  • 2段階認証を用いたユーザーネームとパスワードの認証、もしくはパスキー(GitHub Free, GitHub Enterprise Cloud のみ)
  • PAT(Personal access token)
  • SSH Key

API における認証

GitHub API の認証には以下の方法がある

  • PAT(Personal access token)
    • 参考:
  • GitHub App
  • GitHub Actions ワークフロー

API に対するPATを用いた認証

GitHub REST APIを個人使用に使用したい場合は、個人アクセストークンを作成できる。

GitHubでは、可能であれば従来のPAT(classic)の代わりに、きめ細やかなPAT(fine-grained PAT)の使用を推奨している

GitHub App への認証

Organization や他のユーザーに代わってAPIを使いたい場合、GitHubはGitHub Appの利用が推奨されている

詳細は、ドキュメント: About authentication with a GitHub App.GitHub App での認証についてを参照

OAuthアプリでOAuthトークンを作成してREST APIにアクセスすることもできるが、GitHubは代わりにGitHubアプリを使用することを推奨している

GitHub Appsでは、アプリのアクセスと権限をより細かく制御可能。

GitHub Actions ワークフローにおける API への認証

GitHub ActionsワークフローでAPIを使用したい場合、GitHubはのGITHUB_TOKENで認証することを推奨している

ワークフロー実行中に取得&有効期限はワークフロー実行中のみとなるためセキュリティリスクが少ない

権限キー(permissions key)を使ってGITHUB_TOKENにアクセス権を付与できる

なお、GITHUB_TOKENは、ワークフローを含むリポジトリ内のリソースにのみアクセスできることに注意が必要

詳細についてはUse GITHUB_TOKEN for authentication in workflowsを参照