Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。

ユーザー アクセス トークンを更新する

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

有効期限が切れるユーザー アクセス トークンについて

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

定期的なトークンのローテーションを強制し、侵害されたトークンの影響を抑えるために、有効期限が切れるユーザー アクセス トークンを利用するように GitHub App を設定できます。 有効期限が切れるユーザー アクセス トークンをアプリで使用する場合、ユーザー アクセス トークンを生成するときに更新トークンを受け取ります。 ユーザー アクセス トークンは 8 時間後に期限が切れ、更新トークンは 6 か月後に期限が切れます。 詳しくは、「GitHub アプリのユーザー アクセス トークンの生成」を参照してください。

更新トークンを使用して、新しいユーザー アクセス トークンと新しい更新トークンを生成できます。 更新トークンを使用すると、その更新トークンと古いユーザー アクセス トークンは機能しなくなります。

更新トークンを使用する前にその有効期限が切れた場合は、Web アプリケーション フローまたはデバイス フローを介してユーザーを送信することで、ユーザー アクセス トークンと更新トークンを再生成できます。 詳しくは、「GitHub アプリのユーザー アクセス トークンの生成」を参照してください。

有効期限が切れるユーザー アクセス トークンを使用するようにアプリを構成する

アプリを作成すると、オプトアウトしない限り、ユーザー アクセス トークンの有効期限が有効になります。詳細については、「Registering a GitHub App」を参照してください。 この設定は、アプリの作成後に構成することもできます。

  1. アカウント設定にアクセスしてください。

    • 個人アカウントが所有する GitHub App の場合、任意のページの右上でプロファイル写真をクリックしてから、 [設定] をクリックします。
    • 組織が所有する GitHub App の場合、任意のページの右上でプロファイル写真をクリックしてから、 Your organizations をクリックします。 次に、組織の右側にある [設定] をクリックします。
  2. 左側のサイドバーで [ 開発者設定] をクリックします。

  3. 左側のサイドバーで、 [GitHub App] をクリックします。 GitHub の [開発者向け設定] ページのスクリーンショット。 [GitHub Apps] というオプションが濃いオレンジ色の枠線で囲まれています。

  4. 変更する GitHub App の横で [編集] を選択します。

  5. GitHub Apps 設定サイドバーで、 [オプション機能] を選択します。

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

    GitHub では、セキュリティを強化するためにこの機能をオプトインすることをお勧めします。

既にユーザー アクセス トークンを生成した後に、有効期限が切れるユーザー アクセス トークンをオプトインした場合、以前に生成されたユーザー アクセス トークンの期限は切れなくなります。 DELETE /applications/CLIENT_ID/token エンドポイントを使用して、これらのトークンを削除できます。 詳しくは、「OAuth 認証」を参照してください。

更新トークンを使用してユーザー アクセス トークンを更新する

  1. 次のクエリ パラメーターを使用して、URL https://github.com/login/oauth/access_token に対して POST 要求を行います。

    Query parameter (クエリ パラメーター)Type説明
    client_idstring必須。 GitHub App のクライアント ID。 クライアント ID は、アプリ ID とは異なります。 クライアント ID は、アプリの設定ページで確認できます。

    ユーザー所有アプリの場合、設定ページは https://github.com/settings/apps/APP-SLUG です。

    組織所有アプリの場合、設定ページは https://github.com/organizations/ORGANIZATION/settings/apps/APP-SLUG です。

    APP-SLUG をアプリのスラッグ化された名前に、ORGANIZATION を Organization のスラッグ化された名前に置き換えます。 たとえば、「 https://github.com/organizations/octo-org/settings/apps/octo-app 」のように入力します。
    client_secretstring必須。 GitHub App のクライアント シークレット。 アプリの設定ページでクライアント シークレットを生成できます。
    grant_typestring必須。 値は "refresh_token" である必要があります。
    refresh_tokenstring必須。 ユーザー アクセス トークンを生成したときに受け取った更新トークン。
  2. GitHub から、次のパラメーターを含む応答が提供されます。

    応答パラメーター種類説明
    access_tokenstringユーザー アクセス トークン。 トークンは ghu_ で始まります。
    expires_inintegeraccess_token の有効期限が切れるまでの秒数。 ユーザー アクセス トークンの有効期限を無効にした場合、このパラメーターは省略されます。 値は常に 28800 (8 時間) になります。
    refresh_tokenstring更新トークン。 ユーザー アクセス トークンの有効期限を無効にした場合、このパラメーターは省略されます。 トークンは ghr_ で始まります。
    refresh_token_expires_inintegerrefresh_token の有効期限が切れるまでの秒数。 ユーザー アクセス トークンの有効期限を無効にした場合、このパラメーターは省略されます。 値は常に 15811200 (6 か月) になります。
    scopestringトークンのスコープ。 この値は常に空の文字列になります。 従来の OAuth トークンとは異なり、ユーザー アクセス トークンは、アプリとユーザーの両方が持つアクセス許可に制限されます。
    token_typestringトークンの種類。 値は常に bearer になります。