Skip to main content
ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

ユーザからサーバーへのアクセストークンの更新

定期的なトークンのローテーションを強制し、侵害されたトークンの影響を抑えるために、ユーザアクセストークンの期限を利用するようにGitHub Appを設定できます。

ユーザアクセストークンの期限切れについて

定期的なトークンのローテーションを強制し、侵害されたトークンの影響を抑えるために、ユーザアクセストークンの期限を利用するようにGitHub Appを設定できます。 ユーザからサーバーへのリクエストの発行に関する詳しい情報については、「GitHub Appのユーザの特定と認可」を参照してください。

期限切れになるユーザトークンは、8時間で期限切れになります。 新しいユーザからサーバーへのアクセストークンを受信すると、レスポンスにはリフレッシュトークンも含まれます。このリフレッシュトークンは、新しいユーザトークン及びリフレッシュトークンと交換できます。 リフレッシュトークンは、6ヶ月間有効です。

リフレッシュトークンでのユーザトークンの更新

期限切れになるユーザからサーバーへのアクセストークンを更新するには、refresh_tokenを新しいアクセストークン及びrefresh_tokenと交換できます。

POST https://github.com/login/oauth/access_token

このコールバックリクエストは、新しいアクセストークンと新しいリフレッシュトークンを送信してきます。 このコールバックリクエストは、一時的なcodeをアクセストークンと交換するために使うOAuthのリクエストに似ています。 詳しい情報については「GitHub Appsのユーザの特定と認可」及び「認証の基本」を参照してください。

パラメータ

名前種類説明
refresh_tokenstring必須。 GitHub Appのオーナーが期限切れするトークンを有効化し、新しいユーザアクセストークンを発行したときに生成されるトークン。
grant_typestring必須。 値はrefresh_tokenでなければならない(OAuthの仕様で必須)。
client_idstring必須。 GitHub AppのクライアントID。
client_secretstring必須。GitHub Appのクライアントシークレット。

レスポンス

{
  "access_token": "ghu_16C7e42F292c6912E7710c838347Ae178B4a",
  "expires_in": "28800",
  "refresh_token": "ghr_1B4a2e77838347a7E420ce178F2E7c6912E169246c34E1ccbF66C46812d16D5B1A9Dc86A1498",
  "refresh_token_expires_in": "15811200",
  "scope": "",
  "token_type": "bearer"
}

既存のGitHub Appに対する期限切れするユーザトークンの設定。

期限切れするユーザからサーバーへの認可トークンの有効化や無効化は、GitHub App設定から行えます。

  1. 任意のページの右上で、プロフィール画像をクリックし、続いてSettings(設定)をクリックしてください。

    ユーザバーの [Settings(設定)] アイコン

  2. In the left sidebar, click Developer settings.

  3. 左のサイドバーでGitHub Appsをクリックしてください。 GitHub Apps セクション

  4. 選択したGitHub Appの隣のEdit(編集)をクリックしてください。 GitHub Appを編集する設定

  5. In the left sidebar, click Optional Features. Optional features tab

  6. 「User-to-server token expiration(ユーザからサーバーへのトークンの有効期限)」の隣のOpt-in(オプトイン)もしくはOpt-out(オプトアウト)をクリックしてください。 この設定が適用されるまで、数秒かかることがあります。

新しいGitHub Appでの期限切れになるトークンのオプトアウト

新しいGitHub Appを作成する際には、デフォルトでそのアプリケーションは期限切れになるユーザからサーバーへのアクセストークンを使用します。

アプリケーションに期限切れにならないユーザからサーバーへのアクセストークンを使わせたい場合には、アプリケーションの設定ページで"Expire user authorization tokens(ユーザ認可トークンの期限切れ)"を選択を解除できます。

GitHub App のセットアップ中に期限付きユーザトークンをオプトインするオプション

ユーザからサーバーへの認可トークンを使用する既存のGitHub Appsは、アプリケーションのオーナーが期限になるユーザトークンをアプリケーションに対して有効化した場合にのみ、この新しいフローの影響を受けます。

既存のGitHub Appsに対して期限設定付きのユーザトークンを有効化するためには、8時間で期限切れになる新しいユーザトークンを再発行するためにOAuthフローを通じてユーザを送信し、リフレッシュトークンを使って新しいアクセストークンとリフレッシュトークンを取得するためのリクエストを発行する必要があります。 詳しい情報については「GitHub App のユーザの特定と認可」を参照してください。

参考リンク