このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2021-09-23. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてください。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してください。

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

定期的なトークンのローテーションを強制し、侵害されたトークンの影響を抑えるために、ユーザアクセストークンの期限を利用するように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": "e72e16c7e42f292c6912e7710c838347ae178b4a",
  "expires_in": "28800",
  "refresh_token": "r1.c1b4a2e77838347a7e420ce178f2e7c6912e169246c34e1ccbf66c46812d16d5b1a9dc86a149873c",
  "refresh_token_expires_in": "15811200",
  "scope": "",
  "token_type": "bearer"
}

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

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

  1. 任意のページの右上で、プロフィール画像をクリックし、続いてSettings(設定)をクリックしてください。 ユーザバーの [Settings(設定)] アイコン
  2. 左サイドバーで [Developer settings] をクリックします。 Developer settings(開発者設定)セクション
  3. 左のサイドバーでGitHub Appsをクリックしてください。 GitHub Apps セクション
  4. 選択したGitHub Appの隣のEdit(編集)をクリックしてください。 GitHub Appを編集する設定
  5. 左サイドバーで、[ Beta Features] をクリックします。 Beta features tab
  6. 「User-to-server token expiration(ユーザからサーバーへのトークンの有効期限)」の隣のOpt-in(オプトイン)もしくはOpt-out(オプトアウト)をクリックしてください。 この設定が適用されるまで、数秒かかることがあります。

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

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

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

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

Existing GitHub Apps using user-to-server authorization tokens are only affected by this new flow when the app owner enables expiring user tokens for their app.

Enabling expiring user tokens for existing GitHub Apps requires sending users through the OAuth flow to re-issue new user tokens that will expire in 8 hours and making a request with the refresh token to get a new access token and refresh token. 詳しい情報については「GitHub App のユーザの特定と認可」を参照してください。

問題がまだ解決していませんか?