この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

拡張ポリシー条件のイベント項目の選択

従来のイベントプロパティを拡張トランザクションセキュリティフレームワークのイベントオブジェクト項目に対応付けます。
使用可能なインターフェース: Salesforce Classic および Lightning Experience
使用可能なエディション: Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition

Salesforce Shield または Salesforce Event Monitoring アドオンサブスクリプションが必要です。


従来のポリシーを実装する Apex クラスで、TxnSecurity.Event クラスのプロパティを使用して、監視しているイベントから興味のある項目を選択します。次に、これらの項目をテストして、条件を満たしているかどうかを判定します。たとえば、特定のユーザがログインしたらトリガされるポリシーを作成するには、Event.userId プロパティを使用します。

拡張ポリシーの条件に、ApiEvent.QueriedEntitiesReportEvent.RowsProcessed など、適切なイベントオブジェクトの項目を使用します。

次の表では、TxnSecurity.Event クラスのプロパティを、トランザクションセキュリティポリシーをサポートするリアルタイムイベントモニタリングイベントオブジェクトの同等項目に対応付けています。

表 1. 従来のイベントプロパティとリアルタイムイベントモニタリングイベント項目の対応付け
従来のイベントクラスプロパティ 拡張フレームワークの同等のイベントオブジェクト項目 備考
organizationId 同等なし この組織 ID は、拡張ポリシーが実行されている組織の ID です。組織 ID を取得するには、Apex メソッド UserInfo.getOrganizationId() を使用します。
userId UserId この項目は、トランザクションセキュリティポリシーをサポートするすべてのリアルタイムイベントモニタリングイベントオブジェクトで使用できます。
entityName 同等なし この情報は、拡張ポリシーでは必要ありません。
action 同等なし このプロパティは、廃止された、従来のログイン IP イベント種別でのみ使用されます。
resourceType 同等なし 拡張フレームワークでは、イベントにリソースの概念が存在しません。

それでも、リソースを参照する従来の動作を模倣できます。たとえば、従来のポリシーがデータエクスポートイベント種別と Opportunity リソースに基づいているとします。API クエリのみを監視する必要があるため、拡張ポリシーは ApiEvent に基づきます。商談を監視するには、ポリシーに条件「ApiEvent.QueriedEntities 次の文字列を含む Opportunity」を追加します。ただし、注意が必要です。拡張ポリシーはすべてのレポート操作と API クエリに対して実行されるため、拡張フレームワークのポリシーは、従来のフレームワークの類似のポリシーよりも実行されることが多くなります。

entityId
  • ReportEvent.ReportID (従来のポリシーがリソースアクセスイベント種別に基づいている場合)
  • ApiEvent.Records または ReportEvent.Records (従来のポリシーがデータエクスポートイベント種別に基づいている場合)
  • 従来のログインイベント種別に対する同等なし
timeStamp EventDate この項目は、トランザクションセキュリティポリシーをサポートするすべてのリアルタイムイベントモニタリングイベントオブジェクトで使用できます。
data この従来のプロパティは Map<> です。そのコンテンツは、ポリシーが基づくイベント種別 (リソースアクセス、エクスポート、ログイン) に応じて異なります。次のセクションで、従来の各イベント種別の data キーを拡張フレームワークの同等のイベントオブジェクト項目に対応付ける表を参照してください。

従来のデータエクスポートのデータキーの対応付け

データエクスポートイベント種別に基づく従来のポリシーを拡張フレームワークに移行する場合は、ReportEvent または ApiEvent イベントを選択します。

表 2. 従来のデータエクスポートのデータキーと ReportEvent または ApiEvent 項目の対応付け
従来のデータキー名 同等の ReportEvent 項目 同等の ApiEvent 項目 備考
ApiType 同等なし ApiType
Application 同等なし Application
Browser 同等なし 同等なし ユーザが使用するブラウザを制限するには、即座にブロックする LoginEvent 拡張ポリシーを作成します。
ClientId 同等なし Client
ConnectedAppId 同等なし ConnectedAppId
EntityName QueriedEntities QueriedEntities 拡張フレームワークでは、QueriedEntities 項目に、ポリシーの実行の条件となるすべてのエンティティのカンマ区切りリストが含まれています。従来のフレームワークでは、このプロパティには 1 つのエンティティ名のみが含まれます。
ExecutionTime 同等なし ElapsedTime
IsApi Operation 同等なし Operation 項目には、発生したレポート操作の種別が含まれます。これらの値を使用して、UI (Salesforce Classic、Lightning Experience、またはモバイル)、API (同期、非同期、REST)、ダッシュボードなど、監視する操作を制限します。
isScheduled isScheduled 同等なし
LoginHistoryId LoginHistoryId LoginHistoryId
NumberOfRecords RowsProcessed RowsProcessed
Platform 同等なし Platform
Query 同等なし Query
SessionLevel SessionLevel SessionLevel
SourceIp SourceIp SourceIp
Uri 同等なし 同等なし
UserAgent 同等なし UserAgent
Username Username Username

従来のリソースアクセスのデータキーの対応付け

リソースアクセスイベント種別に基づく従来のポリシーを移行する場合は、ReportEvent イベントを使用します。

表 3. 従来のリソースアクセスのデータキーと ReportEvent 項目の対応付け
従来のデータキー名 同等の ReportEvent 項目
EntityId ReportId
ResourceName 同等なし
SessionLevel SessionLevel
SourceIp SourceIp
Username Username

従来のログインのデータキーの対応付け

ログインイベント種別に基づく従来のポリシーを移行する場合は、LoginEvent イベントを使用します。

表 4. 従来のログインのデータキーと LoginEvent 項目の対応付け
従来のデータキー名 同等の LoginEvent 項目
LoginHistoryId LoginHistoryId
Username Username

リードデータエクスポートの例の実行

引き続き、2 つの拡張ポリシーを (1 つは ApiEvent に基づいて、もう 1 つは ReportEvent に基づいて) 作成します。

次は、従来のリードデータエクスポートポリシーの例で使用されているイベントプロパティと、2 つの新しい拡張ポリシーの同等項目を判別しましょう。

従来のポリシーは、ユーザが次のいずれかをダウンロードするとトリガされます。

  • 2,000 件を超えるリードレコードの取得
  • 完了までに 1 秒超かかる

以下は、従来のポリシーの Apex コードです。すべての条件で、従来のイベントの data Map<> を使用しています。

1global class DataLoaderLeadExportCondition implements TxnSecurity.PolicyCondition {
2  public boolean evaluate(TxnSecurity.Event e) {
3    // The event data is a Map<String, String>.
4    // We need to call the valueOf() method on appropriate data types to use them in our logic.
5    Integer numberOfRecords = Integer.valueOf(e.data.get('NumberOfRecords'));
6    Long executionTimeMillis = Long.valueOf(e.data.get('ExecutionTime'));
7    String entityName = e.data.get('EntityName');
8
9    // Trigger the policy only for an export on leads, where we are downloading
10    // more than 2000 records or it took more than 1 second (1000ms).
11    if ('Lead'.equals(entityName)){
12      if (numberOfRecords > 2000 || executionTimeMillis > 1000){
13        return true;
14      }
15    }
16
17    // For everything else don't trigger the policy.
18    return false;
19  }
20}

次の表は、条件の追加に使用する拡張ポリシーの同等項目のリストです。

従来のデータキー名 同等の ReportEvent 項目 同等の ApiEvent 項目
EntityName QueriedEntities QueriedEntities
ExecutionTime 同等なし ElapsedTime
NumberOfRecords RowsProcessed RowsProcessed

拡張フレームワークではレポート実行時間は監視されないため、ReportEvent 拡張ポリシーのその値に対して条件を追加することはできません。

ReportEvent はエクスポートと表示の両方の操作を監視します。そのため、ReportEvent に基づいたポリシーは、ユーザがレポートをエクスポートした場合とレポートを表示した場合は常に実行されます。従来のデータエクスポートイベント種別は、レポートのエクスポートのみを監視します。ReportEvent.Operation 項目に条件を追加することで、ReportEvent ポリシーの監視対象を制限できます。