> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> ユーザーを再認証することなく、アプリケーションが Auth0 に新しいアクセストークンまたは IDトークンの発行を要求できるようにする、リフレッシュトークンの仕組みについて説明します。

# リフレッシュトークン

Auth0 は、認証リクエストに応じて <Tooltip tip="アクセストークン: API へのアクセスに使用される、不透明な文字列または JWT 形式の認可資格情報。" cta="用語集を見る" href="/ja/docs/glossary?term=access+token">アクセストークン</Tooltip> または <Tooltip tip="アクセストークン: API へのアクセスに使用される、不透明な文字列または JWT 形式の認可資格情報。" cta="用語集を見る" href="/ja/docs/glossary?term=ID+token">IDトークン</Tooltip> を発行します。アクセストークンは保護された API に対する認証済みの呼び出しに使用でき、IDトークンにはクレームとして表現されたユーザープロフィールの属性が含まれます。どちらも <Tooltip tip="IDトークン: リソースへのアクセスではなく、クライアント自体のための認証情報。" cta="用語集を見る" href="/ja/docs/glossary?term=JSON+web+tokens">JSON web tokens</Tooltip> (JWT) であるため、`exp` claim で示される有効期限があり、署名などのセキュリティ対策も施されています。通常、ユーザーが初めてリソースにアクセスするとき、または以前に付与されたアクセストークンの有効期限が切れたあとに、新しいアクセストークンが必要になります。

<Tooltip tip="OAuth 2.0: 認可プロトコルとワークフローを定義する認可フレームワーク。" cta="用語集を見る" href="/ja/docs/glossary?term=OAuth">OAuth</Tooltip> の <Tooltip tip="OAuth 2.0: 認可プロトコルとワークフローを定義する認可フレームワーク。" cta="用語集を見る" href="/ja/docs/glossary?term=Refresh+Token">リフレッシュトークン</Tooltip> は、ユーザーの操作なしで新しいアクセストークンを取得するために OAuth が使用できる認証情報です。これにより、<Tooltip tip="認可サーバー: ユーザーのアクセス範囲の境界を定義することに寄与する集中管理サーバー。たとえば、認可サーバーはユーザーが利用できるデータ、タスク、機能を制御できます。" cta="用語集を見る" href="/ja/docs/glossary?term=Authorization+Server">認可サーバー</Tooltip> は、アクセストークンの有効期限が切れたときにユーザーを介さずに、セキュリティ上の理由からアクセストークンの lifetime を短くできます。リフレッシュトークンが DenyList に追加されるまで、新しいアクセストークンをリクエストできます。

これらの認証情報を安全かつ確実に管理しやすくするため、リフレッシュトークンの数は管理可能な妥当な範囲に保つことが重要です。リフレッシュトークンは実質的にユーザーが半永久的に認証された状態を維持できるようにするため、アプリケーションでは安全に保存する必要があります。

<Card title="オフラインアクセス">
  ユーザーがオフライン時にもリフレッシュトークンを取得できるようにするには、[API Settings](/ja/docs/get-started/apis/api-settings) で **Allow Offline Access** スイッチを選択します。
</Card>

新しいアクセストークンを取得するために Auth0 にリクエストするたびに、新しいリフレッシュトークンを発行し、直前のトークンを無効化する [リフレッシュトークンローテーション](/ja/docs/secure/tokens/refresh-tokens/refresh-token-rotation) を使用すると、セキュリティを強化できます。リフレッシュトークンをローテーションすることで、侵害されたリフレッシュトークンによるリスクを軽減できます。

<div id="limitations">
  ### 制限事項
</div>

* Auth0 では、アプリケーションごとに、ユーザー 1 人あたり最大 200 個の有効なリフレッシュトークンに制限されています。この制限は有効なトークンにのみ適用されます。上限に達した状態で新しいリフレッシュトークンが作成されると、システムはそのユーザーおよびアプリケーションに対する最も古いトークンを失効させ、削除します。失効したトークンと期限切れのトークンは、この上限にはカウントされません。過剰なトークンを避けるための推奨事項とベストプラクティスについては、[トークンのベストプラクティス](/ja/docs/secure/tokens/token-best-practices) を参照してください。

* [リフレッシュトークン交換](/ja/docs/secure/tokens/refresh-tokens/use-refresh-tokens)の後、Auth0 は有効期限のないトークンについて `event.refresh_token.device.last*` プロパティを更新しません。有効期限付きリフレッシュトークンを有効にする方法については、[リフレッシュトークンの有効期限を設定する](/ja/docs/secure/tokens/refresh-tokens/configure-refresh-token-expiration) を参照してください。

<div id="enable-oidc-flag">
  ### OIDC フラグを有効にする
</div>

リフレッシュトークンの動作は、OIDC 準拠アプリケーションに適用されます。アプリケーションを OIDC 準拠として設定するには、次のいずれかの方法を使用します。

1. アプリで **OIDC 準拠** フラグを有効にします。
2. Authentication API の `/authorize` エンドポイントに `audience` クレームを渡します。

<div id="sdk-support">
  ## SDK のサポート
</div>

<div id="for-web-apps">
  ### Web アプリ向け
</div>

リフレッシュトークンをサポートする Auth0 SDK には、次のものがあります。

* Node.js
* ASP.NET Core
* PHP
* Java

完全な一覧については、[クイックスタート](/ja/docs/quickstart/webapp)を参照してください。

<div id="for-single-page-apps">
  ### シングルページアプリ向け
</div>

SPA で安全な認証を実現するには、アプリケーションのユースケースに応じたさまざまな課題があります。Intelligent Tracking Prevention (ITP) などの新しいブラウザーのプライバシー制御により、サードパーティ cookie へのアクセスが妨げられ、SPA のユーザー体験に悪影響が及びます。

Auth0 では、<Tooltip tip="リフレッシュトークンローテーション: 脆弱性を最小限に抑えるためにリフレッシュトークンを頻繁に置き換える戦略です。リフレッシュトークンローテーションでは、アプリケーションが新しいアクセストークンを取得するためにリフレッシュトークンを交換するたびに、Auth0 は新しいリフレッシュトークンも返します。" cta="用語集を表示" href="/ja/docs/glossary?term=refresh+token+rotation">リフレッシュトークンローテーション</Tooltip> の使用を推奨しています。これにより、ITP のようなブラウザーのプライバシー技術によって生じる UX の中断を避けながら、SPA でリフレッシュトークンを安全に使用し、エンドユーザーにリソースへのシームレスなアクセスを提供できます。

<div id="for-nativemobile-apps">
  ### ネイティブ/モバイルアプリ向け
</div>

ネイティブアプリケーションでは、リフレッシュトークンによって認証エクスペリエンスが大幅に向上します。ユーザーは Web認証プロセスを通じて一度だけ認証すればよく、その後の再認証はリフレッシュトークンを使用して、ユーザーの操作なしで実行できます。

モバイル SDK でリフレッシュトークンを使用する方法については、次を参照してください。

* [モバイル/ネイティブ クイックスタート](/ja/docs/quickstart/native)
* [Lock Android: JWT トークンのリフレッシュ](/ja/docs/libraries/lock-android/lock-android-refresh-jwt)
* [Lock iOS: JWT トークンの保存と更新](/ja/docs/libraries/auth0-swift/auth0-swift-save-and-renew-tokens)

<div id="learn-more">
  ## さらに詳しく
</div>

* [リフレッシュトークンを取得する](/ja/docs/secure/tokens/refresh-tokens/get-refresh-tokens)
* [リフレッシュトークンを使用する](/ja/docs/secure/tokens/refresh-tokens/use-refresh-tokens)
* [リフレッシュトークンを失効させる](/ja/docs/secure/tokens/refresh-tokens/revoke-refresh-tokens)
* [リフレッシュトークンローテーション](/ja/docs/secure/tokens/refresh-tokens/refresh-token-rotation)
* [リフレッシュトークンの有効期限を設定する](/ja/docs/secure/tokens/refresh-tokens/configure-refresh-token-expiration)
* [トークンのベストプラクティス](/ja/docs/secure/tokens/token-best-practices)
