# トークンの有効期限と取り消し

トークンは期限切れになる可能性があり、ユーザー、承認したアプリケーション、および GitHub 自体によって取り消すこともできます。

トークンが期限切れになるか取り消されると、Git 要求と API 要求の認証に使用できなくなります。 期限切れのトークンや取り消されたトークンを復元することはできません。ユーザーまたはアプリケーションが新しいトークンを作成する必要があります。

この記事では、 GitHub トークンが失効または期限切れになる可能性がある理由について説明します。

> \[!NOTE]
> personal access token、OAuth app トークン、またはGitHub App トークンの有効期限が切れたり取り消されたりすると、セキュリティ ログに`oauth_authorization.destroy`アクションが表示されることがあります。 詳しくは、「[セキュリティ ログをレビューする](/ja/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log)」をご覧ください。

## 有効期限に達した後に取り消されるトークン

personal access tokenを作成するときは、トークンの有効期限を設定することをお勧めします。 有効期限に達すると、トークンは自動的に取り消されます。 詳しくは、「[個人用アクセス トークンを管理する](/ja/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)」をご覧ください。

## パブリック リポジトリまたはパブリック gist にプッシュされたときに取り消されるトークン

有効な OAuth トークン、 GitHub App トークン、または personal access token がパブリック リポジトリまたはパブリック gist にプッシュされた場合、トークンは自動的に取り消されます。

## 使用されないために期限切れになるトークン

GitHub は、トークンが 1 年で使用されていない場合に、OAuth トークンまたは personal access token を自動的に取り消します。

## ユーザーによって取り消されるトークン

アプリに関連付けられているトークンを取り消すアカウント設定から、 GitHub App または OAuth app の承認を取り消すことができます。 詳細については、「[GitHub アプリの承認の確認と取り消し](/ja/apps/using-github-apps/reviewing-and-revoking-authorization-of-github-apps)」および「[承認された OAuth アプリをレビューする](/ja/apps/oauth-apps/using-oauth-apps/reviewing-your-authorized-oauth-apps)」を参照してください。

認可が取り消されると、その認可に関連付けられているトークンも取り消されます。 アプリケーションを再認証するには、サード パーティ製のアプリケーションまたは Web サイトの指示に従って、 GitHub にアカウントをもう一度接続します。

アカウント設定からすべての資格情報を一度に取り消すこともできます。 これは、アカウントが侵害された可能性がある場合や、ハードウェアが紛失または盗難にあった場合に便利です。 詳しくは、「[資格情報の取り消し](/ja/authentication/keeping-your-account-and-data-secure/revoking-your-credentials)」をご覧ください。

## サード パーティによるトークンの取り消し

公開されたトークンを使用して承認されていないアクセスを防ぐために、 GitHub はトークンの失効を推奨し、トークンを使用して GitHubに対する認証を行えなくなります。 資格情報失効 API では、次の種類のトークンの取り消しがサポートされています。

* Personal access tokens (classic)
  `ghp_` プレフィックス付き
* Fine-grained personal access tokens
  `github_pat_` プレフィックス付き
* OAuth app
  `gho_` プレフィックスを持つトークン
* GitHub App
  `ghu_` プレフィックスを持つユーザーからサーバーへのトークン
* GitHub App
  `ghr_` プレフィックスを使用してトークンを更新する

これらのトークンのいずれかが GitHub または他の場所で漏洩している場合は、REST API を使用して失効要求を送信できます。 サポートされているトークンの種類の完全で権限のある一覧については、 [無効化](/ja/rest/credentials/revoke#revoke-a-list-of-credentials) を参照してください。

有効なトークンが GitHubの資格情報失効 API に送信されると、トークンは自動的に取り消されます。 この API は、サード パーティが自分で所有していないトークンを取り消すのに使用でき、このトークンに関連付けられているデータを不正アクセスから保護し、露出したトークンの影響を制限するのに役立ちます。

報告を奨励し、露出したトークンを迅速かつ簡単に取り消すことができるようにするため、API を使って送信された失効要求では認証は必要ありません。 その結果、 GitHub は、報告されたトークンのソースに関する詳細情報を提供できません。

## OAuth app によって取り消されたトークン

OAuth appの所有者は、アプリのアカウントの承認を取り消すことができます。これにより、承認に関連付けられているトークンも取り消されます。
OAuth appの権限の取り消しの詳細については、[OAuth 承認用 REST API エンドポイント](/ja/rest/apps/oauth-applications#delete-an-app-authorization) を参照してください。

OAuth app 所有者は、承認に関連付けられている個々のトークンを取り消すこともできます。
OAuth appの個々のトークンを取り消す方法の詳細については、「[OAuth 承認用 REST API エンドポイント](/ja/rest/apps/oauth-applications#delete-an-app-token)」を参照してください。

## 同じスコープを持つ OAuth app のトークンが過剰であるために取り消されたトークン

ユーザー/アプリケーション/スコープの組み合わせごとに、1 時間あたり作成されるトークン数には 10 という上限があります。 アプリケーションが同じユーザーと同じスコープに対して 10 個を超えるトークンを作成した場合、 GitHub は、同じユーザー/アプリケーション/スコープの組み合わせで、次の順序で選択された既存のトークンの 1 つを取り消します。

1. 使用されたことがなく、1 分以上前に作成された最も古いトークン。 最後の 1 分以内に作成されたトークンは通常保護されるため、アプリケーションは作成したトークンを使用する時間を持ちます。
2. そのようなトークンがなく、少なくとも 1 つのトークンが使用されている場合は、少なくとも最近使用されたトークン。
3. トークンが使用されていない場合は、最後の 1 分以内に作成された場合でも、最も古いトークン。

時間単位のレート制限に達した場合、最も古いトークンは取り消されません。 代わりに、ブラウザー内で再承認プロンプトがトリガーされ、ユーザーはアプリに付与しているアクセス許可を再確認するよう求められます。 このプロンプトは、アプリが 1 時間以内にユーザーに 10 個のトークンを要求する理由がほとんどないため、アプリが陥っている可能性のある無限ループを中断させることを目的としています。

## GitHub App構成によりユーザー トークンの有効期限が切れた

GitHub Appによって作成されたユーザー アクセス トークンは、既定では 8 時間後に期限切れになり、含まれている更新トークンを使用して再生成する必要があります。
GitHub Appsの所有者は、必要に応じてこれらのトークンを無期限に構成できますが、セキュリティへの影響があるため、これは推奨されません。
GitHub Appのユーザー アクセス トークンの構成の詳細については、「[GitHub アプリのオプション機能のアクティブ化](/ja/apps/maintaining-github-apps/activating-optional-features-for-github-apps)」を参照してください。

## エンタープライズ所有者によって取り消されたトークン

GitHub Enterprise Cloudのエンタープライズ所有者は、SSO 承認を取り消したり、個々のユーザーの資格情報特定の資格情報の種類に対して資格情報を削除したり、セキュリティ インシデントに応答するときに一括で削除したりできます。 SSO 承認を取り消すと、SSO で保護された組織リソースへのアクセスが削除されますが、資格情報 ( Enterprise Managed Users でのみ使用可能) を削除すると、資格情報が完全に削除されます。 組織の所有者は、組織レベルで同じアクションを実行できます。 これらのアクションは監査ログに記録され、電子メール通知を受け取ります。

詳しくは、「[企業での SSO 承認の取り消しまたは資格情報の削除](/ja/enterprise-cloud@latest/admin/managing-iam/respond-to-incidents/revoke-authorizations-or-tokens)」をご覧ください。