> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.generaltranslation.app/llms.txt
> Use this file to discover all available pages before exploring further.

# ルールのコンテキストオブジェクトのプロパティ

> ユーザーのIPアドレス、アプリケーション、および位置情報に関する情報を保管する、ルールのコンテキストオブジェクトのプロパティについて説明します。

<Warning>
  RulesとHooksのサポート終了（EOL）日は**2026年11月18日** であり、**2023年10月16** 日の時点で作成された新しいテナントは使用できなくなります。Hooksが有効な既存のテナントは、サポート終了までHooksを利用できます。

  今後はActionsに移行して、Auth0の機能を拡張することを強くお勧めします。Actionsを使用すると、豊富な情報やインラインドキュメント、パブリック`npm`パッケージにアクセスして、外部統合を使って全体的な拡張エクスペリエンスを強化することができます。Actionsの詳細については、「[Auth0 Actionsの仕組みを理解する](/docs/ja-JP/ja-jp/customize/actions/actions-overview)」をお読みください。

  当社では、移行の参考資料として、[RulesからActionsへの移行](/docs/ja-JP/ja-jp/customize/actions/migrate/migrate-from-rules-to-actions)と[HooksからActionsへの移行](/docs/ja-JP/ja-jp/customize/actions/migrate/migrate-from-hooks-to-actions)に関するガイドを提供しています。また、専用の「[Actionsへの移行](https://auth0.com/extensibility/movetoactions)」ページでは、機能の比較や[Actionsのデモ](https://www.youtube.com/watch?v=UesFSY1klrI)、その他のリソースを掲載して、円滑な移行をサポートしています。

  RulesとHooksの廃止の詳細については、当社のブログ記事「[RulesとHooksの提供終了について](https://auth0.com/blog/preparing-for-rules-and-hooks-end-of-life/)」をお読みください。
</Warning>

`context`オブジェクトには、ユーザーのIPアドレスやアプリケーション、位置情報など、実行中の認証トランザクションに関するコンテキスト情報が保管されます。

ルール内のコンテキストオブジェクトを使用してトークンの内容を変更すると、すべてのルールの実行が終わった後でトークンに反映されます。アプリケーションに多要素認証やユーザーの同意も必要な場合には、トークンに変更を反映する前に、ユーザーに確認を促します。

<div id="properties">
  ## プロパティ
</div>

`context`オブジェクトには以下のプロパティが利用可能です。

<table class="table">
  <thead>
    <tr>
      <th>プロパティ</th>
      <th>説明</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td><code>context.tenant</code></td>
      <td>テナント名を含む文字列。</td>
    </tr>

    <tr>
      <td><code>context.clientID</code></td>
      <td>ユーザーがログインしているアプリケーションのクライアントID。</td>
    </tr>

    <tr>
      <td><code>context.clientName</code></td>
      <td>アプリケーションの名前（Dashboardで定義された通り）。</td>
    </tr>

    <tr>
      <td><code>context.clientMetadata</code></td>
      <td>別のアプリケーションプロパティを保持するためのオブジェクト。そのキーと値は文字列になります。</td>
    </tr>

    <tr>
      <td><code>context.connectionID</code></td>
      <td>接続の一意IDを含む文字列。</td>
    </tr>

    <tr>
      <td><code>context.connection</code></td>
      <td>ユーザーの認証に使用される接続名（例：`twitter`または`some-g-suite-domain`）</td>
    </tr>

    <tr>
      <td><code>context.connectionStrategy</code></td>
      <td>接続のタイプ。`connectionStrategy` === `connection`のソーシャル接続用。エンタープライズ接続では、`waad`（Microsoft Entra ID）、`ad`（Active Directory/LDAP）、`auth0`（データベース接続）などです。</td>
    </tr>

    <tr>
      <td><code>context.connectionOptions</code></td>
      <td>接続で定義されたオプションを示すオブジェクトです。`connectionOptions.tenant_domain`は、エンタープライズ接続を使用する際に認証に使われるドメインに含まれる文字列です。<br /> `connectionOptions.domain_aliases`は、プライマリドメインの他に登録されたエイリアスとして任意のドメインを含む配列です（`connectionOptions.tenant_domain`プロパティに指定された通り）。</td>
    </tr>

    <tr>
      <td><code>context.connectionMetadata</code></td>
      <td>接続で定義されたメタデータを示すオブジェクト。そのキーと値は文字列になります。</td>
    </tr>

    <tr>
      <td><code>context.samlConfiguration</code></td>
      <td>SAMLとWS-Fedのエンドポイントの動作を制御するオブジェクト。高度なクレームマッピングとトークンのエンリッチメントに役立ちます（`samlp`と`wsfed`プロトコルのみ可能です）。</td>
    </tr>

    <tr>
      <td><code>context.protocol</code></td>

      <td>
        認証プロトコル。取り得る値は次のとおりです。

        <ul>
          <li>`oidc-basic-profile`：最も使用されるWebベースのログイン</li>
          <li>`oidc-implicit-profile`：モバイルデバイスとシングルページアプリで使用されます</li>
          <li>`oauth2-device-code`：<a href="/docs/ja-JP/ja-jp/authorization/flows/device-authorization-flow">デバイス認可フロー</a></li>
          <li>を使うトランザクション`oauth2-resource-owner`：通常、データベース接続に使用されるユーザー/パスワードログイン</li>
          <li>`oauth2-resource-owner-jwt-bearer`：ユーザーの秘密鍵で署名されたBearer JWTを使用したログイン</li>
          <li>`oauth2-password`：パスワード交換を使用したログイン</li>
          <li>`oauth2-refresh-token`：リフレッシュトークン交換を使用したトークンのリフレッシュ</li>
          <li>`samlp`：SaaSアプリで使用されるSAMLプロトコル</li>
          <li>`wsfed`：Office365などのMicrosoft製品で使用されるWS-Federation</li>
          <li>`wstrust-usernamemixed`：CRMとOffice365で使用されるWS-trustユーザー/パスワードログイン</li>
          <li>`delegation`：<a href="/docs/ja-JP/ja-jp/api/authentication#delegation">Delegationエンドポイントを呼び出すとき</a></li>
          <li>`redirect-callback`：リダイレクトルールが再開されたとき</li>
        </ul>
      </td>
    </tr>

    <tr>
      <td><code>context.riskAssessment</code></td>
      <td>高リスクのログイン試行評価の指定スコア（低、中、高、普通）を含むオブジェクト。「<a href="/docs/ja-JP/ja-jp/login/mfa/adaptive-mfa/adaptive-mfa-rule-actions">ルールでAdaptive MFAをカスタマイズする</a>」をご覧ください。</td>
    </tr>

    <tr>
      <td><code>context.stats</code></td>
      <td>`stats.loginsCount`のような特定ユーザー統計を含むオブジェクト。`stats`オブジェクトの一部として返されたすべてのカウンター変数は、 <a href="/docs/ja-JP/ja-jp/login/configure-silent-authentication">サイレント認証</a>（`prompt=none`の場合）では増加しないことに注意してください。カウンター変数が増加する一方で、ルールまたは一連のルールが実行されないシナリオも存在します。これは、成功したcross-origin認証の後に失敗したトークン要求がある場合などです。</td>
    </tr>

    <tr>
      <td><code>context.sso</code></td>

      <td>
        このオブジェクトは、シングルサインオン（SSO）トランザクション（可能な場合）についての情報を含みます

        <ul>
          <li>`with_auth0`：`［Use Auth0 instead of the IdP to do Single Sign-on（IdPの代わりにAuth0をシングルサインオンに使用）］`設定が有効（旧テナントのみ）になっているアプリケーションにユーザーがSSOでサインインするとき。</li>
          <li>`with_dbconn`：データベース接続からログインしたユーザーが行うSSOログイン。</li>
          <li>`current_clients`：SSOを使用したクライアントID。</li>
        </ul>
      </td>
    </tr>

    <tr>
      <td><code>context.accessToken</code></td>
      <td>アクセストークンで定義されたオプションを表示するオブジェクト。アクセストークンに<a href="/docs/ja-JP/ja-jp/get-started/apis/scopes/sample-use-cases-scopes-and-claims#add-custom-claims-to-a-token">カスタムされた名前空間のクレームを追加する</a>オブジェクトとして使用できます。 `context.accessToken.scope`は <a href="/docs/ja-JP/ja-jp/rules/examples#modify-scope-of-access-token">アクセストークンの返されたスコープを変更する</a>ために使用することができます。提供された場合、これは文字列形式の権限を含む配列です。カスタムクレームは、すべてのルールが実行された後にアクセストークンに含められます。</td>
    </tr>

    <tr>
      <td><code>context.idToken</code></td>
      <td><a href="/docs/ja-JP/ja-jp/security/tokens/id-tokens">IDトークン</a>で定義されたオプションを表示するオブジェクト。IDトークンに、カスタムされた<a href="/docs/ja-JP/ja-jp/security/tokens/json-web-tokens/create-namespaced-custom-claims">名前空間</a>のクレームを追加する際に使用されます。カスタムクレームは、すべてのルールが実行された後にIDトークンに含められます。</td>
    </tr>

    <tr>
      <td><code>context.multifactor</code></td>
      <td><a href="/docs/ja-JP/ja-jp/mfa">コンテキストに応じたMFAの実装</a>で使用される多要素設定を表示するオブジェクト。</td>
    </tr>

    <tr>
      <td><code>context.redirect</code></td>
      <td><a href="/docs/ja-JP/ja-jp/rules/redirect-users#how-to-implement-a-redirect">ルールからユーザーのリダイレクトを実装する</a>際に使用されるオブジェクト。</td>
    </tr>

    <tr>
      <td><code>context.sessionID</code></td>
      <td>認証セッションの内部ID。認証要求で、`prompt=none`が使用されている場合のみ、値は維持されます。注意：セッションIDは、他のフローでルールが実行された<strong>後</strong>に変わることがあるため、`context.sessionID`で可能な値は、ユーザーが受け取る新しいセッションIDと一致しないことがあります。このため、この値は、`prompt=none`が使用されるときのみ、意味を持ちます。</td>
    </tr>

    <tr>
      <td><code>context.request</code></td>

      <td>
        要求の便利な情報を含むオブジェクト。これは、`undefined`にも設定できます。次のプロパティを含みます：

        <ul>
          <li>`userAgent`：ログインしようとしているアプリケーションのユーザーエージェント。</li>
          <li>`ip`：ユーザーがログインしようとしている元のIPアドレス。IPv6アドレスはパブリックエンドポイントで公開しています（例：travel0.us.auth0.com）。IPv6をサポートするマシンから要求が届いた場合、これにはIPv6アドレスが含まれます。手動でIPアドレスを操作する場合は、<a href="https://www.npmjs.com/package/ipaddr.js/v/1.9.0">ipaddr.js\@1.9.0 library</a>の使用をお勧めします。</li>
          <li>`hostname`：認証フローに使用されているホスト名。</li>
          <li>`query`：アプリケーションから送られたログイントランザクションのクエリ文字列を含むオブジェクト。</li>
          <li>`body`：`oauth2-resource-owner`、`oauth2-resource-owner-jwt-bearer`または`wstrust-usernamemixed`プロトコルで使用されるログイントランザクションにおけるPOST要求のボディ。</li>

          <li>
            `geoip`：地理的IP情報を含むオブジェクト。次のプロパティを含みます：

            <ul>
              <li>`country_code`：IPアドレスに関連付けられた2文字の国コード。</li>
              <li>`country_code3`：IPアドレスに関連付けられた3文字の国コード。</li>
              <li>`country_name`：IPアドレスに関連付けられた国名。</li>
              <li>`city_name`：IPアドレスに関連付けられた市または町名。</li>
              <li>`latitude`：IPアドレスに関連付けられた緯度。</li>
              <li>`longitude`：IPアドレスに関連付けられた経度。</li>
              <li>`time_zone`：IPアドレスに関連付けられたタイムゾーン。</li>
              <li>`continent_code`：IPアドレスに関連付けられた2文字の大陸コード。</li>
              <li>`subdivision_code`：最上位のサブディビジョン/地域のISO 3166-2コード。</li>
              <li>`subdivision_name`：このサブディビジョン/地域の英語名。</li>
            </ul>
          </li>
        </ul>
      </td>
    </tr>

    <tr>
      <td><code>context.primaryUser</code></td>
      <td>ユーザー用プライマリアカウントの一意のユーザーID。様々なIDプロバイダーから<a href="/docs/ja-JP/ja-jp/users/user-account-linking#automatic-account-linking">ユーザーアカウントをリンクする</a>際に使用されます。</td>
    </tr>

    <tr>
      <td><code>context.authentication</code></td>

      <td>
        次のプロパティの認証トランザクションに関連する情報を含むオブジェクト：<br /><br />
        `methods`：セッション中にユーザーが完了した認証メソッドを含むオブジェクトの配列。たとえば、ユーザーがMFAの前に完了したパスワードベースの認証には次のメソッドがあります：<br />

        ```json theme={null}
        [
         {
        "name": "pwd",
        "timestamp": 1434454643024
        },
        {
        "name": "mfa",
        "timestamp": 1534454643881
        }
        ]
        ```

        <br />

        メソッドオブジェクトは次のプロパティを含みます：

        <ul>
          <li>
            `name`：完了した認証メソッドの名前を表示する文字列。次の値の1つである可能性があります（将来的に他の値にも対応する可能性があります）：<br />

            <ul>
              <li>`federated`： ソーシャルまたはエンタープライズ接続がユーザーの認証に使用されました</li>
              <li>`pwd`：データベース接続がユーザーの認証に使用されました</li>
              <li>`sms`：パスワードレスのSMS接続がユーザーの認証に使用されました</li>
              <li>`email`：パスワードレスのメール接続がユーザーの認証に使用されました</li>
              <li>`mfa`：ユーザーが多要素認証を完了しました</li>
            </ul>
          </li>

          <li>`timestamp`：認証メソッドが実行されたUNIXエポック時間（秒単位）を示す整数</li>
        </ul>

        <a href="https://github.com/auth0/rules/blob/master/src/rules/require-mfa-once-per-session.js">セッションルールごとに1回のMFAを要求する</a>で`context.authentication.methods`プロパティの使用例をご覧ください。
      </td>
    </tr>

    <tr>
      <td><code>context.authorization</code></td>

      <td>
        次のプロパティの認可トランザクションに関連する情報を含むオブジェクト：

        <ul>
          <li>`roles`：ユーザーに割り当てられたロールの名前を含む文字列の配列。`context.authorization.roles`プロパティを使ってトークンにロールを追加する使用例は、<a href="/docs/ja-JP/ja-jp/authorization/authorization-policies/sample-use-cases-rules-with-authorization#add-user-roles-to-tokens">サンプルユースケース：認可を使ったルール</a>でご覧ください。</li>
        </ul>
      </td>
    </tr>

    <tr>
      <td><code>context.organization</code></td>

      <td>
        組織に関連した情報を含むオブジェクト。次のプロパティを含みます：

        <ul>
          <li>`id`：ユーザーがログインしている組織のIDを含む文字列。</li>
          <li>`name`：組織名を含む文字列（Auth0 Dashboardに定義されている通り）。</li>
          <li>`metadata`：別の組織プロパティを含む、文字列キー/値のペアのディクショナリー。</li>
        </ul>
      </td>
    </tr>
  </tbody>
</table>

<div id="learn-more">
  ## もっと詳しく
</div>

* [ルールをデバッグする](/docs/ja-JP/ja-jp/customize/rules/debug-rules)
* [ルールのユーザーオブジェクトプロパティ](/docs/ja-JP/ja-jp/customize/rules/user-object-in-rules)
* [「サンプルユースケース」の「スコープとクレーム」](/docs/ja-JP/ja-jp/get-started/apis/scopes/sample-use-cases-scopes-and-claims)
