外部评估

重要

自 2025 年 2 月 3 日起,Dynamics 365 欺诈保护不再可供购买。 对欺诈保护的支持将于 2026 年 2 月 3 日结束。 有关详细信息,请参阅 Dynamics 365 欺诈保护 文章 终止支持。

外部评估是一种可以从其它任何评估中调取评估的机制。 外部评估本身不是评估。 相反,它的行为类似于数据源,允许你发送数据并从目标评估接收响应。 评估可以有两种可能的共享设置之一:

  • 专用:只能在评估的根环境中访问。
  • 共享:可在租户中的所有环境中访问。

外部评估可以指向同一根环境中可用的任何 专用 评估,或租户的任何根环境中可用的任何 共享 评估。

注意

有关如何将评估 共享 设置从 专用 更改为 共享共享 更改为 专用的详细信息,请参阅 评估配置概述

设置外部评估后,可以通过该环境中任何评估的规则调用它。

外部评估流

用于私人评估 :环境 Y = 环境 X

共享评估:环境 Y = 同一租户中的任何根环境

调用评估是指通过外部评估调用专用或共享评估的任何评估。 调用评估必须设置外部评估规则。 满足规则条件后,规则将调用外部评估并执行配置的操作。 与外部调用类似,外部评估不会由子代继承。 若要在规则中使用外部评估,必须在要从中调用外部评估的环境中设置外部评估。

创建外部评估

若要创建外部评估,请先确保你有权执行此作。 有关用户角色和权限的详细信息,请参阅 用户角色和访问

  1. 在欺诈保护门户的左侧导航栏中,选择 外部评估,然后选择“+ 新建外部评估”。
  2. “新建外部评估”页上,设置以下字段:
  • 目标评估以调用 – 在下拉列表中,可以看到所有在同一根环境中设置的专用评估,以及在同一租户的任何根环境中设置的可用共享评估。 选择您要针对的评估。

注意

如果要将外部评估指向的共享评估未显示在下拉列表中,请检查评估的 共享 设置,并确保该评估设置为 共享。 若要详细了解如何配置 共享 设置,请参阅 评估配置概述

  • 名称 – 输入您将在规则中引用外部评估时使用的名称。 名称只能包含数字、字母和下划线。 它不能以数字开头。

注意

在规则中使用外部评估后,无法更改其名称。

  • 说明 – 添加说明以帮助团队快速识别外部评估。
  • API 预览 – 选择要预览其示例代码的 API。 示例代码是可在规则中使用的 FQL 来调用此共享评估

备注

您可以使用外部评估来调用其指向的共享或专用评估的评估、观察或标签 API。

  • 示例响应 – 本部分包含目标评估预期的示例响应。 显示的信息由目标评估管理员手动提供,用于在规则中引用评估时启用自动完成的说明(工具提示)和建议。
  1. 设置完必填字段后,请选择 创建

调用外部评估

若要使用外部评估,请从规则中引用它们。 例如,若要引用名为 myAssessment的外部评估,请在规则中使用以下语法:

Assessments.myAssessment.Evaluate($baseInput = @@)

在上面的示例中,$baseInput = @@将从调用评估的有效负载映射共享/外部评估所需的所有字段。 也可以仅映射特定字段。 还可以根据从外部评估调用收到的信息定义您希望规则采取的动作。

例如

LET $card = {
  number: 12345,
  expy: "2023-03-10".ToDateTime()
}
LET $response = Assessments.MicroTx.evaluate(card = $card, user = @@"user")
OBSERVE Output(decision = $response.decisionDetails.merchantRuleDecision)

可以通过使用 外部评估规则模板,或者从外部评估页面复制/粘贴示例 FQL,来设置规则以调用外部评估。 请务必对要调用的 API(评估、观察、标签)使用示例代码。 示例代码将显示可发送到共享评估的所有字段。 必填字段在代码中标记为此类。

下面是另一个示例 FQL,用于调用名为 ExtAssessment1的外部评估 API:

LET $customUser = {
    id: "userId123456",
    username: "johnsmith2",
    firstName: "John",
    lastName: "Smith",
    email: "johnsmith2@gmail.com",
    address: {
        street1: "0123 Bechtelar Loop",
        city: "Kubtown",
        state: "SC",
        zipCode: "44329",
        countryRegion: "US"
    }
}

LET $result = Assessments.ExtAssessment1.Evaluate(
    user = $customUser,
    specialConsideration = true)
OBSERVE Output(Result = $result)

还可以在规则中访问诊断对象,以便从外部评估的响应中发现重要的诊断和调试信息。 诊断对象包含 请求 有效负载,HttpStatus 代码、错误消息和延迟。 必须先使用诊断对象对应的扩展方法“创建诊断对象。GetDiagnostics()“,然后才能在规则中使用对象的字段。

下面是使用诊断对象响应名为 ExtAssessment2的外部评估的规则示例:

LET $result = Assessments.ExtAssessment2.evaluate($baseInput =@@)
LET $diagnostics = $result.GetDiagnostics()
RETURN Approve(), Output (Diagnostics = $diagnostics)
WHEN $diagnostics.httpStatusCode==200

外部调用和外部评估可能需要复杂的结构化对象作为请求架构的一部分。 有关如何使用 JSON 数组和对象的详细信息,请参阅 语言参考指南

注意

还可以在 Functions 中引用外部评估。 有关详细信息,请参阅 Functions

在欺诈保护门户中监视外部评估

欺诈防护会显示一个图块,其中包含您定义的每个外部评估的三个指标。

  • 每秒请求数 – 请求总数除以所选时间范围内的总分钟数。
  • 平均延迟 – 请求总数除以所选时间范围内的总分钟数。
  • 成功率 – 成功请求总数除以已发出的请求总数。

此磁贴上显示的数字和图表仅包含您在页面右上角的下拉列表中选择的时间范围的数据。

注意

仅当外部评估在活动规则中使用时,才会显示指标。

  • 要深入了解与外部评估相关的数据,请选择位于磁贴右上角的性能。 欺诈保护显示一个新页面,其中包含更详细的指标视图。
  • 若要查看过去三个月中任何时间范围的指标,请调整页面顶部的“日期”范围设置。

除了前面所述的三个指标外,还会显示 错误 图表。 此图表按错误类型和代码显示错误数。 若要查看随时间推移的错误计数,或查看错误的分布,请选择 饼图

除了 HTTP 客户端错误(400、401 和 403),你可能会看到以下错误:

  • 无效的应用程序 ID – 您提供的应用程序 ID 在租户中不存在,或其无效。
  • Microsoft Entra 失败 – 无法检索Microsoft Entra 令牌。
  • 定义找不到 – 外部调用已删除,但仍在规则中引用。
  • 超时 – 对目标的请求花费的时间超过了指定的超时时间。
  • 通信失败 – 由于网络问题或目标不可用,无法与目标建立连接。
  • 断路器 – 如果外部调用连续失败并超出特定阈值,则所有进一步调用将暂停短间隔。
  • 未知故障 – 发生了内部 Dynamics 365 故障。