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

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

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

プロパティ

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

プロパティ 説明
context.tenant テナント名を含む文字列。
context.clientID ユーザーがログインしているアプリケーションのクライアントID。
context.clientName アプリケーションの名前(Dashboardで定義された通り)。
context.clientMetadata 別のアプリケーションプロパティを保持するためのオブジェクト。そのキーと値は文字列になります。
context.connectionID 接続の一意IDを含む文字列。
context.connection ユーザーの認証に使用される接続名(例:twitterまたはsome-g-suite-domain
context.connectionStrategy 接続のタイプ。connectionStrategy === connectionのソーシャル接続用。エンタープライズ接続では、waad(Microsoft Entra ID)、ad(Active Directory/LDAP)、auth0(データベース接続)などです。
context.connectionOptions 接続で定義されたオプションを示すオブジェクトです。connectionOptions.tenant_domainは、エンタープライズ接続を使用する際に認証に使われるドメインに含まれる文字列です。
connectionOptions.domain_aliasesは、プライマリドメインの他に登録されたエイリアスとして任意のドメインを含む配列です(connectionOptions.tenant_domainプロパティに指定された通り)。
context.connectionMetadata 接続で定義されたメタデータを示すオブジェクト。そのキーと値は文字列になります。
context.samlConfiguration SAMLとWS-Fedのエンドポイントの動作を制御するオブジェクト。高度なクレームマッピングとトークンのエンリッチメントに役立ちます(samlpwsfedプロトコルのみ可能です)。
context.protocol 認証プロトコル。取り得る値は次のとおりです。
  • oidc-basic-profile:最も使用されるWebベースのログイン
  • oidc-implicit-profile:モバイルデバイスとシングルページアプリで使用されます
  • oauth2-device-codeデバイス認可フロー
  • を使うトランザクション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ユーザー/パスワードログイン
  • delegationDelegationエンドポイントを呼び出すとき
  • redirect-callback:リダイレクトルールが再開されたとき
context.riskAssessment 高リスクのログイン試行評価の指定スコア(低、中、高、普通)を含むオブジェクト。「ルールでAdaptive MFAをカスタマイズする」をご覧ください。
context.stats stats.loginsCountのような特定ユーザー統計を含むオブジェクト。statsオブジェクトの一部として返されたすべてのカウンター変数は、 サイレント認証prompt=noneの場合)では増加しないことに注意してください。カウンター変数が増加する一方で、ルールまたは一連のルールが実行されないシナリオも存在します。これは、成功したcross-origin認証の後に失敗したトークン要求がある場合などです。
context.sso このオブジェクトは、シングルサインオン(SSO)トランザクション(可能な場合)についての情報を含みます
  • with_auth0[Use Auth0 instead of the IdP to do Single Sign-on(IdPの代わりにAuth0をシングルサインオンに使用)]設定が有効(旧テナントのみ)になっているアプリケーションにユーザーがSSOでサインインするとき。
  • with_dbconn:データベース接続からログインしたユーザーが行うSSOログイン。
  • current_clients:SSOを使用したクライアントID。
context.accessToken アクセストークンで定義されたオプションを表示するオブジェクト。アクセストークンにカスタムされた名前空間のクレームを追加するオブジェクトとして使用できます。 context.accessToken.scopeアクセストークンの返されたスコープを変更するために使用することができます。提供された場合、これは文字列形式の権限を含む配列です。カスタムクレームは、すべてのルールが実行された後にアクセストークンに含められます。
context.idToken IDトークンで定義されたオプションを表示するオブジェクト。IDトークンに、カスタムされた名前空間のクレームを追加する際に使用されます。カスタムクレームは、すべてのルールが実行された後にIDトークンに含められます。
context.multifactor コンテキストに応じたMFAの実装で使用される多要素設定を表示するオブジェクト。
context.redirect ルールからユーザーのリダイレクトを実装する際に使用されるオブジェクト。
context.sessionID 認証セッションの内部ID。認証要求で、prompt=noneが使用されている場合のみ、値は維持されます。注意:セッションIDは、他のフローでルールが実行されたに変わることがあるため、context.sessionIDで可能な値は、ユーザーが受け取る新しいセッションIDと一致しないことがあります。このため、この値は、prompt=noneが使用されるときのみ、意味を持ちます。
context.request 要求の便利な情報を含むオブジェクト。これは、undefinedにも設定できます。次のプロパティを含みます:
  • userAgent:ログインしようとしているアプリケーションのユーザーエージェント。
  • ip:ユーザーがログインしようとしている元のIPアドレス。IPv6アドレスはパブリックエンドポイントで公開しています(例:travel0.us.auth0.com)。IPv6をサポートするマシンから要求が届いた場合、これにはIPv6アドレスが含まれます。手動でIPアドレスを操作する場合は、ipaddr.js@1.9.0 libraryの使用をお勧めします。
  • hostname:認証フローに使用されているホスト名。
  • query:アプリケーションから送られたログイントランザクションのクエリ文字列を含むオブジェクト。
  • bodyoauth2-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の前に完了したパスワードベースの認証には次のメソッドがあります:
[
  {
    "name": "pwd",
    "timestamp": 1434454643024
  },
  {
    "name": "mfa",
    "timestamp": 1534454643881
  }
]

Was this helpful?

/

メソッドオブジェクトは次のプロパティを含みます:
  • name:完了した認証メソッドの名前を表示する文字列。次の値の1つである可能性があります(将来的に他の値にも対応する可能性があります):
    • federated: ソーシャルまたはエンタープライズ接続がユーザーの認証に使用されました
    • pwd:データベース接続がユーザーの認証に使用されました
    • smsパスワードレスのSMS接続がユーザーの認証に使用されました
    • email:パスワードレスのメール接続がユーザーの認証に使用されました
    • mfa:ユーザーが多要素認証を完了しました
  • timestamp:認証メソッドが実行されたUNIXエポック時間(秒単位)を示す整数
セッションルールごとに1回のMFAを要求するcontext.authentication.methodsプロパティの使用例をご覧ください。
context.authorization 次のプロパティの認可トランザクションに関連する情報を含むオブジェクト:
  • roles:ユーザーに割り当てられた ロールの名前を含む文字列の配列。context.authorization.rolesプロパティを使ってトークンにロールを追加する使用例は、サンプルユースケース:認可を使ったルールでご覧ください。
context.organization 組織に関連した情報を含むオブジェクト。次のプロパティを含みます:
  • id:ユーザーがログインしている組織のIDを含む文字列。
  • name:組織名を含む文字列(Auth0 Dashboardに定義されている通り)。
  • metadata:別の組織プロパティを含む、文字列キー/値のペアのディクショナリー。

もっと詳しく