MRRT 用にアプリケーションを設定する
refresh_token.policies プロパティで定義できます。
audience プロパティと scope プロパティは、テナント内の既存のアプリケーションに対応している必要があります。そうでない場合、リフレッシュトークン交換時にそれらは通知なく無視されます。
マルチリソース リフレッシュトークンを実装する
ステップ 1: 認証し、リフレッシュトークンをリクエストする
offline_access スコープを含めます。詳細については、リフレッシュトークンを取得するを参照してください。
リフレッシュトークンを受け取れない場合は、次の点を確認してください。
- API の設定で Allow Offline Access が有効になっていること。
offline_accessがスコープに含まれていること。- リクエストで使用した
audienceが、テナントで設定済みの API と一致していること。
ステップ 2: リフレッシュトークンを別の API 用に交換する
ステップ 3: アクセストークンを使用して API を呼び出す
jwt.io でアクセストークンをデコードして、次の内容を確認できます。
audクレームが、要求した API と一致していること (例: https://billing.example.com) 。scopeクレームに、許可された値のみが含まれていること。
Actions でマルチリソース リフレッシュトークンを使用する
event.client.refresh_token.policies オブジェクトが用意されており、 やスコープなどの関連情報が含まれます。
event.client.refresh_token.policies オブジェクトを使用すると、リフレッシュトークンの発行時または交換時にアプリケーションのオーディエンスとスコープを評価し、API へのアクセスとスコープを正確に制御できます。
評価ロジック
- audience パラメーターが省略されている場合、Auth0 は元のオーディエンスと、MRRT ポリシーで設定された追加のスコープを含むアクセストークンを返します。
- 新しい audience パラメーターが指定されている場合、Auth0 はそのオーディエンスが MRRT ポリシーに含まれていることを確認し、設定されたスコープを持つ、その新しいオーディエンス向けのアクセストークンを返します。
- scope パラメーターが省略されている場合、Auth0 は元のリクエストと MRRT ポリシーで許可されているすべてのスコープを組み合わせます。
- 新しい scope パラメーターが指定されている場合、Auth0 は要求されたスコープを検証し、MRRT ポリシーに含まれるスコープを持つアクセストークンを返します。無効なスコープや許可されていないスコープは、要求されても暗黙的に無視されます。
- audience パラメーターが元のリクエストと同じ場合、Auth0 は MRRT ポリシーを適用し、MRRT で設定されたすべてのスコープと元の認証時のスコープを持つ、そのオーディエンス向けのアクセストークンを返します。