- 永続的なカスタムクレームを作成する
- 一意のセッション ID を作成する
- テナント識別子を伝播する
- アップストリーム IDプロバイダー (IdP) からの一時的なデータを管理する
- セキュリティと不正検知を強化する
永続的なカスタムクレームを作成する
- ユーザーのロール
- 権限
- テナント ID
- リフレッシュトークンの交換全体を通じて、認可やパーソナライズに必要なその他の属性
api.refreshToken.setMetadata() を使用してそれらをリフレッシュトークンメタデータに割り当てるには、post-login Action トリガーを設定します。
custom claim Action example
post-login Action トリガーでは、event.refresh_token.metadata オブジェクトを使用してこれらのカスタムクレームにアクセスし、api.idToken.setCustomClaim() および api.accessToken.setCustomClaim() を使って新たに発行されるトークンに適用できます。
1 つの
post-login Action で、event.request.body.grant_type オブジェクトを使用してクレームの永続性を管理しながら、異なる grant_type シナリオに対応できます。event.refresh_token オブジェクトは、リフレッシュトークン交換中にのみ読み取り専用で利用できます。一意のセッション ID を作成する
- デバッグや監査のために、ユーザーのセッションを正確に記録する。
- アプリケーションが内部のセッション状態を追跡するための仕組みを提供する。
- APIs で、詳細なログ記録、レート制限、コンテキストに応じた認可判断を実現する。
- 複数のトークンライフサイクルにまたがって、一貫した UX を適用する。
api.session.setMetadata() および api.refreshToken.setMetadata() オブジェクトを使用して一意のセッション ID を作成し、ユーザーのセッションに割り当てます。
api.idToken.setCustomClaim() および api.accessToken.setCustomClaim() オブジェクトを使用して、一意のセッション ID をカスタムクレームとして ID トークンとアクセストークンに追加します。
unique session ID Action example
event.refresh_token.metadata オブジェクトを使ってこれらのカスタムクレームにアクセスし、api.idToken.setCustomClaim() および api.accessToken.setCustomClaim() を使用して、新たに発行されるリフレッシュトークンに適用できます。
テナント識別子を作成する
- 動的なアクセス制御を追加し、アプリケーションや API でテナントごとの権限を簡単に適用する
- ユーザーの現在のテナントコンテキストに応じて、関連性の高いコンテンツや機能を提供するカスタマイズされたユーザー体験を実現する
- Auth0 内でテナントの識別と伝播を一元化し、マルチテナンシーのロジックを簡素化する
- すべてのトークンで一貫したテナントコンテキストを確保し、テナント間でのデータ露出を防ぐことで、セキュリティを強化する
- API 呼び出しやトークン更新のたびにテナントコンテキストを判断するための、繰り返しのデータベースクエリや複雑なロジックを減らし、スケーラビリティを向上させる
ext-tenantId の値をアプリケーションに照会するか、位置情報からテナントを推定するか、またはユーザーに使用するテナントを選択させることで、ユーザーのアクティブなテナントを特定します。
テナントを特定したら、api.session.setMetadata() と api.refreshToken.setMetadata() を使用してテナント識別子の値をユーザーのセッションに割り当て、さらに api.idToken.setCustomClaim() と api.accessToken.setCustomClaim() を使用して、その値を ID トークンとアクセストークンのカスタムクレームとして追加します。
tenant identifier Action example
post-login Action で event.refresh_token.metadata オブジェクトを使ってこれらのカスタムクレームにアクセスし、api.idToken.setCustomClaim() および api.accessToken.setCustomClaim() を使用して、新しく発行されるリフレッシュトークンに適用できます。
上流のIDプロバイダー (IdP) からの一時データを管理する
- 一時データやセッション固有のデータを保存せずに、ユーザープロファイルをクリーンに保つ
- さまざまなIdPごとの多様なデータ要件に対応しながら、永続的なユーザープロファイルにスキーマ変更や不要なデータ増加を持ち込まずに済むため、柔軟性を高める
- 一時データを必要な期間だけ保存することで、データプライバシーや保持ポリシーへの準拠を促進する
- Auth0 Actionsとメタデータによってデータのライフサイクル管理が簡素化されるため、一時的なIdPデータの処理にかかる開発負荷を軽減する
event.request、event.user、event.context オブジェクトに含まれるユーザープロファイルデータを特定します。
どのデータが一時データまたはコンテキストデータに該当するかを判断し、api.session.setMetadata() と api.refreshToken.setMetadata() を使用してそのデータをユーザーのセッションに割り当てます。また、api.idToken.setCustomClaim() と api.accessToken.setCustomClaim() を使用して、その一時データをIDトークンおよびアクセストークンのカスタムクレームとして追加します。
transient data Action example
post-login Actionトリガーでevent.refresh_token.metadataオブジェクトを通じてこれらのカスタムクレームにアクセスし、api.accessToken.setCustomClaim()を使用して新たに発行されるリフレッシュトークンに適用できます。
セキュリティと不正検知を強化する
- ユーザーのコンテキストデータにおける不審な変化を自動的に検出して対応することで、脅威を先回りして検知し、セッションの乗っ取りや不正アクセスのリスクを低減します。
- 実際に異常が検出された場合にのみ MFA や追加の検証を求めることで、正当なユーザーの負担を減らし、一律に MFA を要求する場合と比べてユーザー体験を向上させます。
api.session.setMetadata() オブジェクトを使用してユーザーのセッションに保存します。
security detection Action example
post-login Actionトリガーで、リスク評価や適応的な対応を適用できます。
Management API でメタデータにアクセスする
GET /api/v2/refresh-tokens/{id} および /api/v2/sessions/{id} エンドポイントを使用すると、リフレッシュトークンまたはセッションのメタデータに保存されているデータを取得できます。
レスポンスには、保存済みのデータを含む metadata フィールドが含まれます。
詳細情報
- リフレッシュトークン: リフレッシュトークンの詳細を確認してください。
- セッション: セッションの詳細を確認してください。
- Actions イベントオブジェクト:
post-loginイベントオブジェクトとそのプロパティの詳細を確認してください。 - Actions API オブジェクト:
post-loginAPI オブジェクトとそのメソッドの詳細を確認してください。