外部评估

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

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

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

注意

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

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

外部评估流

对于专用评估:环境 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 中引用外部评估。 有关详细信息,请参阅函数

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

欺诈防护显示一个磁贴,其中包含你定义的每个外部评估的三个指标:

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

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

注意

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

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

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

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

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