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

トランザクションセキュリティ通知の Apex ポリシー

すべてのトランザクションセキュリティポリシーで Apex TxnSecurity.PolicyCondition インターフェースを実装する必要があります。次に、いくつか例を示します。
使用可能なエディション: Salesforce Classic および Lightning Experience の両方
使用可能なエディション: Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition

Salesforce Shield または Salesforce Shield Event Monitoring アドオンサブスクリプションを購入する必要があります。


ポリシーの Apex インターフェースを生成する前に条件値を指定していなかった場合、後で条件を追加できます。条件を変更する場合は編集できます。ポリシーを有効化する前に、Apex コードを編集して条件を含めます。条件を含めないと、ポリシーはトリガされません。次に、条件の作成方法の例を示します。

トランザクションセキュリティポリシーを削除しても、TxnSecurity.PolicyCondition 実装は削除されません。Apex コードを他のポリシーで再利用できます。

この Apex ポリシーの例では、過去 24 時間でいずれかのユーザが複数の IP アドレスからログインしたときにトリガされるポリシーが実装されています。

1global class LoginPolicyCondition implements TxnSecurity.PolicyCondition {
2  public boolean evaluate(TxnSecurity.Event e) {
3    AggregateResult[] results = [SELECT SourceIp
4                                 FROM LoginHistory
5                                 WHERE UserId = :e.userId
6                                       AND LoginTime = LAST_N_DAYS:1
7                                 GROUP BY SourceIp];
8    if(!results.isEmpty() && results.size() > 1) {
9      return true;
10    }
11    return false;
12  }
13}

この Apex ポリシーの例では、セッションが特定の IP アドレスから作成されたときにトリガされるポリシーが実装されています。

1global class SessionPolicyCondition implements TxnSecurity.PolicyCondition {
2  public boolean evaluate(TxnSecurity.Event e) {
3    AuthSession eObj = [SELECT SourceIp FROM AuthSession WHERE Id = :e.entityId];
4    if(eObj.SourceIp == '1.1.1.1' ){
5      return true;
6    }
7    return false;
8  }
9}

この DataExport ポリシーでは、いずれかのユーザがデータローダ経由でデータをエクスポートしたときにトリガされるポリシーが実装されています。

1global class DataExportPolicyCondition implements TxnSecurity.PolicyCondition {
2  public boolean evaluate(TxnSecurity.Event e) {
3    if(e.data.get('SourceIp') == '1.1.1.1' ){
4      return true;
5    }
6    return false;
7  }
8}

この Apex ポリシーは、いずれかのユーザがレポートにアクセスしたときにトリガされます。

1global class ReportsPolicyCondition implements TxnSecurity.PolicyCondition {
2  public boolean evaluate(TxnSecurity.Event e) {
3    if(e.data.get('SessionLevel') == 'STANDARD' ){
4      return true;
5    }
6    return false;
7  }
8}

この Apex ポリシーは、いずれかのユーザが接続アプリケーションにアクセスしたときにトリガされます。

1global class ConnectedAppsPolicyCondition implements TxnSecurity.PolicyCondition {
2  public boolean evaluate(TxnSecurity.Event e) {
3    if(e.data.get('SessionLevel') == 'STANDARD' && (e.entityId == '0CiD00000004Cce')){
4      return true;
5    }
6    return false;
7  }
8}