認証について
多くの REST API エンドポイント操作では、認証が必要であるか、認証されている場合は追加情報が返されます。 さらに、認証されている場合は 1 時間あたりの要求を増やすことができます。
要求の Authorization
ヘッダーでトークンを送信することで、要求を認証できます。 次の例では、YOUR-TOKEN
をトークンへの参照に置き換えます。
curl --request GET \
--url "https://HOSTNAME/api/v3/octocat" \
--header "Authorization: Bearer YOUR-TOKEN"
注: ほとんどの場合は、Authorization: Bearer
または Authorization: token
を使用してトークンを渡すことができます。 ただし、JSON Web トークン (JWT) を渡す場合は、Authorization: Bearer
を使用する必要があります。
トークンなしで、またはアクセス許可が不十分なトークンで REST API エンドポイントを使用しようとすると、404 Not Found
または 403 Forbidden
応答を受け取ります。
personal access token
で認証を行う
個人用に GitHub REST API を使用する場合は、personal access token を作成できます。personal access token の作成について詳しくは、「個人用アクセス トークンを管理する」を参照してください。
personal access token は、各 REST API エンドポイントにアクセスするために特定のスコープを必要とします。 選択するスコープに関する全般的なガイダンスについては、「OAuth アプリのスコープ」を参照してください。
アプリによって生成されたトークンを使用した認証
Organization で、または他のユーザーの代わりに API を使用する場合、GitHub では、GitHub App の使用が推奨されます。 詳しくは、「GitHub アプリでの認証について」を参照してください。
GitHub App には、各 REST API エンドポイントにアクセスするための特定のアクセス許可が必要です。 各エンドポイントに必要なアクセス許可の詳細については、「GitHub Appに必要な権限」を参照してください。
また、OAuth app を使用して OAuth トークンを作成し、REST API にアクセスすることもできます。 しかし、GitHub では、代わりに GitHub App を使用することが推奨されます。 GitHub Apps を使うと、アプリのアクセスとアクセス許可をより詳細に制御できます。
基本認証を使用する
GitHub Apps と OAuth apps の一部の REST API エンドポイントでは、基本認証を使ってエンドポイントにアクセスする必要があります。 ユーザー名としてアプリのクライアント ID を使用し、パスワードとしてアプリのクライアント シークレットを使用します。
次に例を示します。
curl --request POST \
--url "https://HOSTNAME/api/v3/applications/YOUR_CLIENT_ID/token" \
--user "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET"
--data '{
"access_token": "ACCESS_TOKEN_TO_CHECK"
}'
クライアント ID とクライアント シークレットは、アプリの所有者またはアプリを承認したユーザーではなく、アプリに関連付けられます。 アクセス トークンの作成など、アプリに代わって操作を実行するために使用されます。
GitHub App または OAuth app のオーナーである場合、または GitHub App のアプリ管理者である場合は、クライアント ID を見つけて、アプリの設定ページでクライアント シークレットを生成できます。 アプリの設定ページに移動するには:
- GitHub の任意のページの右上隅にある、自分のプロファイル写真をクリックします。
- アカウント設定にアクセスしてください。
- 個人用アカウントが所有するアプリの場合は、[設定] をクリックします。
- 組織が所有するアプリの場合:
- [自分の組織] をクリックします。
- 組織の右側にある [設定] をクリックします。
- 左側のサイドバーで [ 開発者設定] をクリックします。
- 左側のサイド バーで、[GitHub Apps] または [OAuth apps] をクリックします。
- GitHub Apps の場合、アクセスする GitHub App の右側にある [編集] をクリックします。 OAuth apps の場合は、アクセスするアプリをクリックします。
- [クライアント ID] の横に、アプリのクライアント ID が表示されます。
- [クライアント シークレット] の横にある [新しいクライアント シークレットの生成] をクリックして、アプリのクライアント シークレットを生成します。
GitHub Actions ワークフローにおける認証
GitHub Actions ワークフローで API を使用する場合、GitHub では、トークンを作成するのではなく、組み込み GITHUB_TOKEN
で認証することが推奨されます。 permissions
キーを使用して、GITHUB_TOKEN
へのアクセス許可を付与できます。 詳しくは、「自動トークン認証」を参照してください。
ユーザー名とパスワードによる認証
ユーザー名とパスワードによる認証はサポートされていません。 ユーザー名とパスワードを使用して認証しようとすると、4xx エラーが表示されます。