Skip to main content

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

定期的なトークンのローテーションを強制し、侵害されたトークンの影響を抑えるために、ユーザアクセストークンの期限を利用するように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. In the left sidebar, click Developer settings. Developer settings

  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 アプリのユーザーの特定と認可」を参照してください。

参考資料