Skip to main content
Auth0 は、認証リクエストに応じて または を発行します。アクセストークンは保護された API に対する認証済みの呼び出しに使用でき、ID トークンにはクレームとして表現されたユーザープロファイル属性が含まれます。どちらも (JWT) であるため、exp クレームで示される有効期限や、署名などのセキュリティ対策があります。通常、ユーザーが初めてリソースにアクセスするとき、または以前に付与されたアクセストークンの有効期限が切れた後には、新しいアクセストークンが必要になります。 は、ユーザーの操作なしで新しいアクセストークンを取得するために OAuth が使用できる資格情報です。これにより、 は、アクセストークンの有効期限が切れた際にユーザーを介在させることなく、セキュリティ上の理由からアクセストークンの有効期間を短くできます。リフレッシュトークンが DenyList に登録されるまで、新しいアクセストークンをリクエストできます。 リフレッシュトークンの数は、安全かつ確実にこれらの資格情報を管理しやすいよう、妥当で管理可能な範囲に保つことが重要です。アプリケーションはリフレッシュトークンを安全に保存する必要があります。これは、リフレッシュトークンによって実質的にユーザーが継続して認証された状態を保てるためです。

オフラインアクセス

ユーザーがオフライン時にリフレッシュトークンを取得できるようにしたい場合は、API Settingsオフラインアクセスの許可 スイッチを選択できます。
新しいアクセストークンを取得するために Auth0 に送信するリクエストごとに、新しいリフレッシュトークンを発行し、それまでのトークンを無効化する Refresh Tokenのローテーション を使用することで、セキュリティを高めることができます。リフレッシュトークンをローテーションすると、侵害されたリフレッシュトークンによるリスクを軽減できます。

制限事項

  • Auth0 では、ユーザーごと、アプリケーションごとにアクティブなリフレッシュトークンを 200 個までに制限しています。この制限の対象となるのは、アクティブなトークンのみです。上限に達した状態で新しいリフレッシュトークンが作成されると、システムはそのユーザーとアプリケーションで最も古いトークンを取り消して削除します。取り消されたトークンおよび期限切れのトークンは、この上限には含まれません。トークンの過剰発行を避けるための推奨事項とベストプラクティスについては、Token Best Practices を参照してください。
  • リフレッシュトークン交換の後、Auth0 は有効期限のないトークンについて event.refresh_token.device.last* プロパティを更新しません。有効期限付きのリフレッシュトークンを有効にする方法については、Configure Refresh Token Expiration を参照してください。

OIDCフラグを有効にする

リフレッシュトークンの動作は、OIDC準拠のアプリケーションに適用されます。次のいずれかの方法で、アプリケーションをOIDC準拠として設定できます。
  1. アプリの OIDC Conformant フラグを有効にする。
  2. Authentication API の /authorize エンドポイントに audience クレームを渡す。

SDK サポート

ウェブアプリ向け

リフレッシュトークンをサポートしている Auth0 SDK には、次のものがあります。
  • Node.js
  • ASP.NET Core
  • PHP
  • Java
完全な一覧については、Quickstarts を参照してください。

シングルページアプリ向け

SPAで安全な認証を実現するには、アプリケーションのユースケースに応じてさまざまな課題があります。Intelligent Tracking Prevention (ITP) などの新しいブラウザーのプライバシー制御により、サードパーティCookieへのアクセスが妨げられ、SPAのユーザー体験に悪影響が及びます。 Auth0では、 の使用を推奨しています。これにより、ITPのようなブラウザーのプライバシー技術によってUXが損なわれることなく、エンドユーザーはリソースにシームレスにアクセスでき、同時にSPAでリフレッシュトークンを安全に使用できます。

ネイティブ/モバイルアプリ向け

ネイティブアプリケーションでは、リフレッシュトークンによって認証時のユーザー体験が大幅に向上します。ユーザーが認証を行う必要があるのは、Web 認証プロセスを通じた最初の1回だけです。以降の再認証は、リフレッシュトークンを使用することで、ユーザーの操作なしに行えます。 モバイル SDK でリフレッシュトークンを使用する方法については、以下を参照してください。

詳細はこちら