Skip to main content

現在、GitHub AE は限定的リリースです。

OAuth アプリのレート制限

レート制限は、ご自分のエンタープライズ へのトラフィックのレートを制限し、すべてのユーザーに一貫したアクセスを確保するのに役立ちます。

: OAuth app の代わりに GitHub App をビルドするのを考慮します。 インストール アクセス トークンを使う GitHub Apps のレート制限は、リポジトリの数と組織のユーザーの数に応じてスケーリングされます。 逆に、OAuth apps のレート制限は低く、スケーリングされません。 詳細については、「GitHub Apps と OAuth アプリの違い」および「GitHub App の作成について」を参照してください。

OAuth apps のレート制限について

GitHub は、OAuth app が一定の時間内にサーバーに送信できる要求の数に制限を設けます。 この制限は、不正使用やサービス拒否攻撃を防ぐのに役立ち、すべてのユーザーがシステムを使用できるようにします。

OAuth apps は、ユーザーがアプリを承認した後、ユーザー アクセス トークンを使って要求を行うことで、ユーザーに代わって動作します。 OAuth apps からのユーザー アクセス トークン要求は、OAuth トークンを使って認証されます。 詳しくは、「OAuth アプリの承認」を参照してください。

OAuth app のレート制限を決定する

現在のレート制限の状態は、いつでも REST API を使って確認できます。 詳しくは、「REST API のリソース」を参照してください。

OAuth apps では、次の 2 つのアクション中にレート制限が発生する可能性があります。

  1. ユーザーのサインイン時。
  2. API 呼び出しを行うとき。

OAuth apps は常にトークンをキャッシュする必要があり、ユーザーをサインインさせる必要はほとんどありません。 ユーザーが繰り返しサインインする場合はバグの兆候である可能性があり、最も一般的に見られるのはアプリと GitHub の間の無限ループです。 アプリが 1 時間以内にユーザーに 10 回サインインした場合、同じ時間内の次のサインインでは、アプリケーションの再承認が必要になります。 これにより、ユーザーはアプリが非常に多くのトークンを生成していることを認識できるようになります。それ以外の場合は、無限ループになる可能性がある部分にブレークを挿入します。 この 10 回の_サインイン_レート制限は、OAuth apps にも適用される 10 _トークン_の制限とは異なります。 10 トークンの制限については、「OAuth アプリの承認」を参照してください。

またOAuth apps は、認証したユーザーあたり 15,000 件/時に制限されます。 ユーザーによって、またはユーザーが所有している personal access token によって認可されている OAuth apps からのすべての要求と、ユーザーの認証資格情報のいずれかで認証された要求は、そのユーザーについて 1 時間あたり 15,000 件の同じクォータを共有します。

参考資料