ユースケース
- Web アプリケーション: Web ベースの生産性向上アプリがユーザーの Google Calendar に接続し、ユーザーに再認証を求めることなく、ミーティングのスケジュール設定などのタスクをユーザーに代わって実行します。
- モバイルアプリケーション: モバイルのフォトギャラリーアプリがユーザーの Google Photos アカウントに接続し、写真が撮影されるたびに自動的にアップロードし、バックグラウンドでアクセストークンを更新することでユーザーのログイン状態を維持します。
仕組み

前提条件
ステップ 2: リフレッシュトークンの交換を実行する
Token Vault はリフレッシュトークンローテーションをサポートしていませんが、DPoP を使用して、Auth0 が発行したトークンをクライアントに紐づけることで、セキュリティをさらに強化できます。Token Vault を使ってリフレッシュトークンの交換を正しく行うには、Auth0 Dashboard でアプリケーションの Allow Refresh Token Rotation を無効にしてください。
POST リクエストを /oauth/token エンドポイントに送信します。
| パラメーター | 説明 |
|---|---|
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の両方に一致するアイデンティティを検索します。 - Auth0 がユーザーを見つけられない場合、
401ステータスコードとエラーメッセージを返します。