Skip to main content
が漏えいした場合は、取り消すことができます。Auth0 は、トークンの取り消しを、そのトークンが悪意のある第三者に渡った可能性があるものとして処理します。 さらに、クライアントがリフレッシュトークンを使って新しいアクセストークンを取得するたびに、新しいリフレッシュトークンも返されるように、Refresh Tokenのローテーションを有効にすることも検討できます。

トークン取り消し時にグラントも削除するかどうかを選択する

グラントは、ユーザーの資格情報を公開することなく、別のエンティティ上のリソースへのアクセス権をアプリケーションに付与するものです。トークンはグラントに基づいて発行されます。 グラントが取り消されると、そのグラントに基づいて発行されたすべてのトークンも取り消されます。ただし、トークンを取り消しても、必ずしもグラントまで取り消す必要はありません。 テナント設定で、トークンの取り消し時に関連するグラントを削除するかどうかを選択できます。
  1. Auth0 Dashboard > Tenant Settings > Advanced に移動します。
  2. Settings セクションで、Refresh Token Revocation Deletes Grant トグルを有効または無効にします。
    • リフレッシュトークンを取り消すときに、元になるグラントも削除するには、このトグルを有効にします。
    取り消しリクエストが行われるたびに、同じ認可グラントに基づくほかのすべてのトークンが無効になり、同じユーザー、アプリケーション、audience に対して発行されたすべてのリフレッシュトークンが取り消されます。
    • リフレッシュトークンを取り消すときに、元になるグラントを保持するには、このトグルを無効にします。
    デバイスのリンクが解除されると、関連付けられたリフレッシュトークンのみが取り消され、グラントはそのまま維持されます。
この機能は、2021 年 1 月 13 日以降に作成されたすべてのテナントで、デフォルトで無効になっています。

リフレッシュトークンを取り消す

リフレッシュトークンは、次の方法で取り消せます。

Auth0 Dashboardを使用する

Auth0 Dashboardを使用して、トークンを発行したアプリケーションに対するユーザーのアクセス承認を取り消すことができます。これによりリフレッシュトークンは無効になり、実質的にはトークン自体を取り消すのと同じです。
  1. Auth0 Dashboard > User Management > Users に移動し、詳細を表示するユーザーの名前を選択します。
  2. Authorized Applications タブを選択します。このページには、ユーザーがアクセスを承認しているすべてのアプリケーションが一覧表示されます。
  3. 承認済みアプリケーションへのユーザーのアクセスを取り消してリフレッシュトークンを無効にするには、Revoke をクリックします。

Authentication API の使用

Authentication API のリフレッシュトークン取り消しエンドポイントを使用して、リフレッシュトークンを取り消すことができます。 このエンドポイントは、 を安全に保持できないアプリケーション (ネイティブアプリなど) 向けに、client secret なしでのアクセスをサポートしています。アプリケーション自体の認証方式 (tokenEndpointAuthMethod) は none に設定されている必要があります。 リクエストを行うと、API はまずアプリケーションの資格情報を検証し、次にそのトークンが取り消しリクエストを行っているアプリケーションに対して発行されたものかどうかを確認します。この検証に失敗した場合、リクエストは拒否され、アプリケーションにエラーが通知されます。 次に、API はトークンを無効化します。無効化は即時に行われ、取り消し後、そのトークンは再度使用できません。各取り消しリクエストでは、同じ認可グラントに対して発行されたすべてのトークンが無効化されます。 body パラメーター、response schema、コード例などの詳細については、Authentication API ドキュメントのリフレッシュトークン取り消しエンドポイントを参照してください。

Management API のデバイス資格情報エンドポイントを使用する

Auth0 Management API のデバイス資格情報エンドポイントを使用してリフレッシュトークンを取り消すには、次の手順に従います。
  1. デバイス資格情報を取得するエンドポイントを使用して、取り消す対象のリフレッシュトークンの id を取得します。 read:device_credentials スコープを含むアクセストークンを使用し、type=refresh_tokenuser_id を指定します。結果を絞り込むには、トークンに関連付けられた client_id (わかっている場合) を指定することもできます。
  2. デバイス資格情報を削除するエンドポイントを使用して、リフレッシュトークンを取り消します。delete:device_credentials スコープを含むアクセストークンと、リフレッシュトークン ID を指定します。

Management API のリフレッシュトークンエンドポイントを使用する

Auth0 Management API のリフレッシュトークンエンドポイントは現在、Enterprise プランをご利用のお客様のみご利用いただけます。詳しくは、料金をご覧ください。
Management API のリフレッシュトークンエンドポイントは、拡張プロパティと一括取り消し操作を備えており、/v2/device-credentials リソースエンドポイントに代わるものです。 以下のエンドポイントを使用して、特定のリフレッシュトークンの情報を確認したり、取り消したりできます。

考慮事項と制限事項

  • Device Authorization Flow では、デバイスに再認可を強制する唯一の方法は、そのデバイスに割り当てられたリフレッシュトークンを取り消すことです。デバイスが再認可を求められるのは、現在のアクセストークンの有効期限が切れ、アプリケーションが取り消されたリフレッシュトークンを使用しようとしたときです。詳しくは、Unlink Devices from Users を参照してください。
  • Refresh Tokenのローテーション を使用している場合、以前に無効化されたトークンが使用されると、その無効化されたトークンの発行以降に発行されたリフレッシュトークン一式が直ちに取り消されるため、エンドユーザーは再度認証する必要があります。
  • リフレッシュトークンの取り消し (DELETE) 操作は非同期で実行され、結果整合性です。
  • 2023-09-21 以降 (US-3 リージョンのテナントでは 2024-02-22 以降) に発行されたリフレッシュトークンには、適切な値が設定されたセッション ID (session_id) プロパティが含まれます。この日付より前に発行されたリフレッシュトークンでは、このプロパティの値は null です。
リフレッシュトークンの制限事項の詳細については、Refresh Tokens limitations を参照してください。