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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

完全な一覧については、[Quickstarts](/docs/ja-jp/quickstart/webapp) を参照してください。

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

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

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

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

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

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

* [Mobile/Native Quickstarts](/docs/ja-jp/quickstart/native)
* [Lock Android: JWT トークンをリフレッシュする](/docs/ja-jp/libraries/lock-android/lock-android-refresh-jwt)
* [Lock iOS: JWT トークンを保存して更新する](/docs/ja-jp/libraries/auth0-swift/auth0-swift-save-and-renew-tokens)

<div id="learn-more">
  ## 詳細はこちら
</div>

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