Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

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

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

注: 有効期限が切れるユーザー トークンは現在、オプションの機能であり、変更される可能性があります。 ユーザーからサーバーへのトークンの有効期限機能をオプトインまたはオプトアウトするには、「アプリケーションのオプション機能をアクティブにする」を参照してください。 詳細については、「GitHub App のユーザーからサーバーへのアクセストークンの期限切れ」を参照してください。

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

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

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

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

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

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

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

パラメーター

名前説明
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(設定)] アイコン

  2. 左側のサイドバーで、 [開発者向け設定] をクリックします。

  3. 左側のサイドバーで、 [GitHub アプリ] をクリックします。 [GitHub アプリ] セクション

  4. 選んだ GitHub App の横にある [編集] をクリックします。 GitHub App を編集する設定

  5. 左側のサイドバーで、 [オプション機能] をクリックします。 [オプション機能] タブ

  6. [ユーザーからサーバーへのトークンの期限切れ] の横にある [オプトイン] または [オプトアウト] をクリックします。この設定が適用されるまで、数秒かかることがあります。

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

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

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

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

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

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

参考資料