ユースケース
- Web application: Web ベースの生産性向上アプリがユーザーの Google Calendar に接続し、会議のスケジュール設定などのタスクをユーザーに代わって実行します。これにより、ユーザーは再認証せずに利用を継続できます。
- Mobile application: モバイル写真ギャラリーアプリがユーザーの Google Photos アカウントに接続し、撮影した写真を自動的にアップロードします。バックグラウンドでアクセストークンを更新することで、ユーザーのログイン状態を維持します。
仕組み

前提条件
ステップ 2: リフレッシュトークン交換を実行する
Token Vault はリフレッシュトークンローテーションをサポートしていませんが、セキュリティをさらに強化するために、DPoP を使用して Auth0 が発行したトークンをクライアントにバインドできます。Token Vault でリフレッシュトークン交換を正常に実行するには、Auth0 Dashboard でアプリケーションの Allow Refresh Token Rotation を無効にしてください。
POST リクエストを /oauth/token エンドポイントに送信します。
| Parameter | Description |
|---|---|
grant_type | グラントタイプ。Token Vault では、urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token に設定します。 |
client_id | クライアントアプリケーション ID |
client_secret | クライアントシークレット。注: 外部プロバイダーのアクセストークンを取得する際は、任意のクライアント認証方式を使用できます。 |
subject_token_type | サブジェクトトークンのタイプ。Token Vault では、リフレッシュトークン urn:ietf:params:oauth:token-type:refresh_token に設定します。 |
subject_token | ユーザーを識別するために、Auth0 認可サーバーが検証する Auth0 リフレッシュトークン。 |
requested_token_type | 要求するトークンタイプ。Token Vault では、外部プロバイダーのアクセストークン、または http://auth0.com/oauth/token-type/federated-connection-access-token に設定します。 |
connection | 接続名。この場合は google-oauth2 です。 |
login_hint | (省略可能) login_hint は、ユーザーが同じ接続に複数のアカウント (たとえば、仕事用の Google アカウントと個人用の Google アカウント) を持っている場合にのみ使用します。トークン交換時に login_hint に値を渡すと、ユーザーにリンクされている複数のアカウントのうち、どのアカウントに対するリクエストかを明示的に指定できます。 |
- Auth0 は、ユーザープロファイルの
connected_accounts配列に、認可リクエストで渡された接続名を持つユーザーアカウントが含まれているかどうかを確認します。 - 認可リクエストに
login_hintが含まれている場合、Auth0 は接続名とlogin_hintの両方に一致する ID を探します。 - Auth0 がユーザーを見つけられない場合は、エラーメッセージとともに
401ステータスコードを返します。