メインコンテンツへスキップ
が侵害された場合は、失効できます。Auth0 では、トークンの失効を、トークンが悪意のある第三者に漏えいした可能性があるものとして扱います。 また、クライアントがリフレッシュトークンを交換して新しいアクセストークンを取得するたびに、新しいリフレッシュトークンも返されるように、リフレッシュトークンのローテーションを有効にすることも検討してください。

トークンの失効時にグラントも削除するかどうかを選択する

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

リフレッシュトークンを失効する

次の方法でリフレッシュトークンを失効できます。

Auth0 Dashboard を使用する

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

Authentication API を使用する

Authentication API のリフレッシュトークン失効エンドポイントを使用して、リフレッシュトークンを失効できます。 このエンドポイントは、を安全に保持できないアプリケーション (ネイティブアプリなど) 向けに、クライアントシークレットなしでのアクセスをサポートしています。アプリケーション自体の認証方式 (tokenEndpointAuthMethod) は none に設定しておく必要があります。 リクエストを送信すると、API はまずアプリケーションの認証情報を検証し、次に、その失効リクエストを行っているアプリケーションに対してそのトークンが発行されたものかどうかを確認します。この検証に失敗した場合、リクエストは拒否され、アプリケーションにエラーが返されます。 次に、API はトークンを無効化します。無効化は即時に行われ、失効後、そのトークンは再利用できません。各失効リクエストでは、同じ認可グラントに対して発行されたすべてのトークンが無効になります。 本文パラメーター、レスポンススキーマ、コード例などの詳細については、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 プランをご利用のお客様のみご利用いただけます。詳しくは、Pricing を参照してください。
Management API のリフレッシュトークンエンドポイントは、拡張プロパティと一括失効操作をサポートし、/v2/device-credentials リソースエンドポイントに代わるものです。 次のエンドポイントを使用して、特定のリフレッシュトークンの情報を表示したり、失効したりできます。

考慮事項と制限事項

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