メインコンテンツへスキップ
Rules と Hooks のサポート終了日 (EOL) は 2026 年 11 月 18 日 です。また、2023 年 10 月 16 日 以降に作成された新しいテナントでは、これらはすでに利用できません。アクティブな Hooks を使用している既存のテナントは、サポート終了まで Hooks へのアクセスを維持できます。Auth0 の拡張には、Actions の使用を強くお勧めします。Actions では、豊富な型情報、インラインドキュメント、公開 npm パッケージを利用できるほか、外部統合と接続して拡張性をさらに高めることもできます。Actions の機能の詳細については、Understand How Auth0 Actions Work を参照してください。移行を支援するために、Rules から Actions への移行Hooks から Actions への移行 のガイドを用意しています。また、機能比較、Actions のデモ、および移行に役立つその他のリソースを紹介した専用の Move to Actions ページもあります。Rules と Hooks の非推奨化について詳しくは、ブログ記事 Preparing for Rules and Hooks End of Life を参照してください。
context オブジェクトには、ユーザーの IP アドレス、アプリケーション、位置情報など、現在の認証トランザクションに関するコンテキスト情報が格納されます。 ルール内で context オブジェクトを使用してトークンの内容を変更した場合、その変更はすべてのルールの実行が完了した後にトークンに反映されます。アプリケーションで やユーザーの同意も必要な場合は、トークンへの変更が反映される前にユーザーにプロンプトが表示されます。

プロパティ

context オブジェクトでは、以下のプロパティを使用できます。
プロパティ説明
context.tenantテナント名を含む文字列。
context.clientIDユーザーがログインするアプリケーションのクライアントID。
context.clientNameアプリケーションの名前 (ダッシュボードで定義されたもの) 。
context.clientMetadataその他のアプリケーションプロパティを保持するオブジェクト。キーと値はどちらも文字列です。
context.connectionID接続の一意の識別子を含む文字列。
context.connectionユーザーの認証に使用された接続の名前 (例: twitter または some-g-suite-domain)
context.connectionStrategy接続の種類。ソーシャル接続では、connectionStrategy === connection です。エンタープライズ接続では、ストラテジーは waad (Windows Azure AD) 、ad (Active Directory/LDAP) 、auth0 (データベース接続) などになります。
context.connectionOptions接続で定義されたオプションを表すオブジェクトです。connectionOptions.tenant_domain は、Enterprise 接続を使用する際に認証に使われるドメインを含む文字列です。
connectionOptions.domain_aliases は、プライマリ ドメイン (connectionOptions.tenant_domain プロパティで指定) に加えて、エイリアスとして登録された追加のドメインを含む配列です。
context.connectionMetadata接続に定義されているメタデータを表すオブジェクト。キーと値はいずれも文字列です。
context.samlConfigurationSAML および WS-Fed エンドポイントの動作を制御するオブジェクトです。高度なクレーム マッピングやトークン拡張に役立ちます (samlp および wsfed プロトコルでのみ使用可能) 。
context.protocol認証プロトコル。指定可能な値:
  • oidc-basic-profile: 最も一般的な、Web ベースのログイン
  • oidc-implicit-profile: モバイルデバイスおよびシングルページアプリで使用
  • oauth2-device-code: Device Authorization Flow を使用するトランザクション
  • oauth2-resource-owner: 通常はデータベース接続で使用されるユーザー名/パスワードログイン
  • oauth2-resource-owner-jwt-bearer: ユーザーの秘密鍵で署名された Bearer JWT を使用するログイン
  • oauth2-password: パスワード交換を使用するログイン
  • oauth2-refresh-token: リフレッシュトークン交換を使用したトークンの更新
  • samlp: SaaS アプリで使用される SAML プロトコル
  • wsfed: Office365 などの Microsoft 製品で使用される WS-Federation
  • wstrust-usernamemixed: CRM および Office365 で使用される WS-Trust のユーザー名/パスワードログイン
  • delegation: Delegation endpoint を呼び出す場合
  • redirect-callback: リダイレクトルールが再開される場合
context.riskAssessment高リスクのログイン試行を評価する項目ごとのスコア (low、medium、high、neutral) を含むオブジェクト。Rules を使用した Adaptive MFA のカスタマイズを参照してください。
context.statsstats.loginsCount など、特定のユーザー統計情報を含むオブジェクトです。stats オブジェクトの一部として返されるカウンター変数は、サイレント認証 中 (prompt=none の場合など) はいずれも増加しない点に注意してください。また、カウンター変数は増加しても、Rule または一連の Rules が実行されない場合もあります。たとえば、クロスオリジン認証が成功した後にトークンリクエストが失敗したケースです。
context.ssoこのオブジェクトには、シングルサインオン (SSO) のトランザクションに関する情報が含まれます (利用可能な場合) 。
  • with_auth0: Use Auth0 instead of the IdP to do Single Sign-On 設定が有効なアプリケーションにユーザーがSSOでサインインした場合 (レガシーテナントのみ) 。
  • with_dbconn: データベース接続を通じてログインしたユーザーによるSSOログイン。
  • current_clients: SSOを使用しているクライアントID。
context.accessTokenアクセストークン に定義されたオプションを表すオブジェクトです。このオブジェクトを使用すると、アクセストークンカスタムの名前空間付きクレームを追加できます。context.accessToken.scope を使用して、アクセストークンで返されるスコープを変更できます。指定する場合は、文字列形式の権限を含む配列です。カスタムクレームは、すべての Rules の実行後にアクセストークンに含まれます。
context.idTokenIDトークン で定義されているオプションを表すオブジェクトです。名前空間付きのカスタムクレームを IDトークンに追加するために使用します。カスタムクレームは、すべての Rules の実行後に IDトークンに含まれます。
context.multifactorコンテキストに応じたMFAの実装で使用されるMFA設定を表すオブジェクト。
context.redirectルールでユーザーのリダイレクトを実装するために使用されるオブジェクト。
context.sessionID認証セッションの内部識別子です。この値が保持されるのは、認可リクエストで prompt=none が使用されている場合のみです。他のフローでは、ルールの実行にセッション ID が変更される場合があるため、context.sessionID で参照できる値は、ユーザーが受け取る新しいセッション ID と一致しないことがあります。そのため、この値が意味を持つのは prompt=none が使用される場合に限られます。
context.requestリクエストに関する有用な情報を含むオブジェクトです。これには undefined が設定される場合もあります。次のプロパティがあります:
  • userAgent: ログインを試みているアプリケーションのユーザーエージェント。
  • ip: ログインを試みているユーザーの送信元 IP アドレス。Auth0 のパブリックエンドポイント (例: travel0.us.auth0.com) では IPv6 アドレスを公開しています。リクエストが IPv6 をサポートするマシンから送信された場合、ここには IPv6 アドレスが含まれます。IP アドレスを手動で処理する場合は、ipaddr.js@1.9.0 library を使用することをお勧めします。
  • hostname: 認証フローで使用されるホスト名。
  • query: アプリケーションから送信されたログイン トランザクションのクエリ文字列プロパティを含むオブジェクト。
  • body: oauth2-resource-owneroauth2-resource-owner-jwt-bearer、または wstrust-usernamemixed プロトコルで使用されるログイン トランザクションの POST リクエスト本文。
  • geoip: 地理的な IP 情報を含むオブジェクトです。次のプロパティがあります:
    • country_code: IP アドレスに関連付けられた国を表す 2 文字のコード。
    • country_code3: IP アドレスに関連付けられた国を表す 3 文字のコード。
    • country_name: IP アドレスに関連付けられた国名。
    • city_name: IP アドレスに関連付けられた都市名または町名。
    • latitude: IP アドレスに関連付けられた緯度。
    • longitude: IP アドレスに関連付けられた経度。
    • time_zone: IP アドレスに関連付けられたタイムゾーン。
    • continent_code: IP アドレスに関連付けられた大陸を表す 2 文字のコード。
    • subdivision_code: 最上位の行政区画/地域を表す ISO 3166-2 コード。
    • subdivision_name: この行政区画/地域の英語名。
context.primaryUserユーザーのプライマリアカウントに対応する一意のユーザー id。さまざまなIDプロバイダーのユーザーアカウントをリンクするために使用されます。
context.authentication認証トランザクションに関連する情報を含むオブジェクトです。次のプロパティがあります。

methods: セッション中にユーザーが完了した認証方法を含むオブジェクトの配列です。たとえば、パスワードベースの認証を完了した後に MFA を完了したユーザーでは、次のような methods になる場合があります。
json lines [ { "name": "pwd", "timestamp": 1434454643024 }, { "name": "mfa", "timestamp": 1534454643881 } ]
各 method オブジェクトには、次のプロパティが含まれます。
  • name: 完了した認証方法の名前を表す文字列です。指定できる値は次のとおりです (今後、追加の値がサポートされる可能性があります) 。
    • federated: ソーシャル接続またはエンタープライズ接続を使用してユーザーを認証した
    • pwd: データベース接続を使用してユーザーを認証した
    • sms: パスワードレス SMS 接続を使用してユーザーを認証した
    • email: パスワードレス Email 接続を使用してユーザーを認証した
    • mfa: ユーザーが多要素認証を完了した
  • timestamp: Unix エポック時刻で、その認証方法が実行された時点の時刻を秒単位で示す整数です
context.authentication.methods プロパティの使用例は、Require MFA once per session Rule を参照してください。
context.authorization認可トランザクションに関連する情報を含むオブジェクトで、次のプロパティがあります:
context.organization組織に関連する情報を含むオブジェクトです。次のプロパティが含まれます:
  • id: ユーザーのログイン先である組織の ID を含む文字列。
  • name: 組織の名前 (Auth0 Dashboard で定義) を含む文字列。
  • metadata: 組織のその他のプロパティを含む、文字列のキーと値のペアの辞書。

詳細はこちら