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は、ワークフローを含むリポジトリ内のリソースにのみアクセスできることに注意が必要