集成帐户保护 API

若要利用 Microsoft Dynamics 365 欺诈保护中的完整功能套件,请将交易数据发送到实时应用程序编程接口(API)。 在评估体验中,可以分析使用欺诈保护的结果。 在保护体验中,还可以遵循基于已配置规则的决策。

根据选择使用欺诈保护的方式,可以使用不同的 帐户保护 API。 例如 ,AccountCreationAccountLoginAccountCreationStatusAccountLoginStatusAccountUpdateLabel

有关所有受支持的事件的信息,请参阅 Dynamics 365 欺诈保护 API

设置

登录

重要

若要完成初始 API 载入,你必须是 Microsoft Azure 租户中的全局管理员istrator。

若要登录到欺诈保护,请执行以下操作:

  • 如果系统提示你接受这些条款和条件,请转到 欺诈保护门户,登录并接受条款和条件。

    此步骤可确保在 Azure 租户中正确配置欺诈保护。 (在初始注册期间,你可能已经完成了此步骤。

创建 Microsoft Entra 应用程序

重要

若要完成此步骤,必须是应用程序管理员istrator、云应用程序管理员istrator 或 Azure 租户中的全局管理员istrator。

若要获取调用 API 所需的令牌,必须使用 Microsoft Entra 应用程序。 可以使用欺诈保护中的“实时 API”页来配置这些应用

配置 Microsoft Entra 应用:

  1. 在左侧导航窗格中,选择“配置,然后选择“实时 API”。

  2. 填写字段以创建应用。 需要以下字段:

    • 应用程序显示名称 – 输入应用的描述性名称。 最大长度为 93 个字符。
    • 环境 – 选择生产终结点。
    • 身份验证方法 – 选择证书还是密码(密码)用于身份验证。 如果选择“ 证书”,请选择“ 选择文件 ”以上传公钥。 获取令牌时,需要匹配的私钥。 如果选择“ 机密”,则会在创建应用后为你生成密码。
  3. 填写完字段后,选择“ 创建应用程序”。

    确认页汇总了应用的名称和 ID,以及证书指纹或机密,具体取决于所选的身份验证方法。

重要

保存有关证书指纹或机密的信息以供将来参考。 机密只显示一次。

可以根据需要创建任意数量的应用,以在生产环境中运行 API 调用。

若要创建另一个应用,请执行以下操作:

  1. 选择“ 创建另一个应用程序”。
  2. 填写字段以创建应用,然后选择“ 创建应用程序”。

管理现有的 Microsoft Entra 应用程序

创建 Microsoft Entra 应用后,可以通过 [Azure 门户](https://portal.azure.com/#blade/Microsoft_MicrosoftEntra ID_IAM/ActiveDirectoryMenuBlade/RegisteredApps)管理它们。 有关详细信息,请参阅 Azure 文档站点

调用欺诈防护实时 API

使用本节中的信息将系统与欺诈保护集成。

所需的 ID 和信息

  • API 终结点 – 环境的 URI 显示在欺诈保护仪表板的“帐户信息”磁贴上。
  • 目录(租户)ID – 目录 ID 是 Azure 中租户域的全局唯一标识符(GUID)。 它显示在Azure 门户和欺诈保护仪表板的“帐户信息”磁贴上。
  • 应用程序(客户端)ID – 应用程序 ID 标识为调用 API 而创建的 Microsoft Entra 应用。 可以在选择“实时 API”页上的“创建应用程序”后显示的确认页上找到此 ID。 稍后还可以在Azure 门户中的应用注册找到它。 将为每个创建的应用提供一个 ID。
  • 证书指纹或机密 – 可以在选择“实时 API”页上的“创建应用程序”后显示的确认页上找到证书指纹或机密
  • 实例 ID - 实例 ID 是欺诈保护中环境的全局唯一标识符(GUID)。 它显示在欺诈保护仪表板上的“集成”磁贴中。

生成访问令牌

必须生成此令牌,并为每个 API 调用提供该令牌。 请注意,访问令牌的有效期有限。 建议缓存并重复使用每个访问令牌,直到获取新的访问令牌。

以下 C# 代码示例提供了演示如何使用证书或机密获取令牌的示例。 使用自己的信息替换占位符。

证书指纹

public async Task<string> AcquireTokenWithCertificateAsync()
{
    var x509Cert = CertificateUtility.GetByThumbprint("<Certificate thumbprint>");
    var clientAssertion = new ClientAssertionCertificate("<Client ID>", x509Cert);
    var context = new AuthenticationContext("<Authority URL. Typically https://login.microsoftonline.com/[Directory_ID]>");
    var authenticationResult = await context.AcquireTokenAsync("<API endpoint>", clientAssertion);

    return authenticationResult.AccessToken;
}

机密

public async Task<string> AcquireTokenWithSecretAsync()
{
    var clientAssertion = new ClientCredential("<Client ID>", "<Client secret>");
    var context = new AuthenticationContext("<Authority URL. Typically https://login.microsoftonline.com/[Directory_ID]>");
    var authenticationResult = await context.AcquireTokenAsync("<API endpoint>", clientAssertion);

    return authenticationResult.AccessToken;
}

响应

在后台,上述代码生成 HTTP 请求,并接收类似于以下示例的响应。

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Date: <date>
Content-Length: <content length>

{
    "token_type":"Bearer",
    "expires_in":"3599",
    "ext_expires_in":"3599",
    "expires_on":"<date timestamp>",
    "not_before":"<date timestamp>",
    "resource":"https://api.dfp.dynamics.com",
    "access_token":"<your access token; e.g.: eyJ0eXA...NFLCQ>"
}

有关详细信息,请参阅 Azure 文档:

调用 API

若要调用 API,请执行以下步骤。

  1. 在每个请求上传递以下必需的 HTTP 标头。

    标头名称 标头值
    授权 对此标头使用以下格式:Bearer accesstoken,其中 accesstoken 是 Microsoft Entra ID 返回的令牌。
    x-ms-correlation-id 在一起进行的每组 API 调用上发送新的 GUID 值。
    x-ms-dfpenvid 发送实例 ID 的 GUID 值。
  2. 生成基于事件的有效负载。 使用系统中的相关信息填写事件数据。 有关所有受支持的事件的信息,请参阅 Dynamics 365 欺诈保护 API

  3. 合并标头(包括访问令牌)和有效负载,然后将其发送到欺诈保护终结点。

注意

如果创建新环境,请在集成期间在 API 标头中包含环境 ID,以便正确路由事务。

查看示例应用

有关其他参考,请查看 示例商家应用 ,并查看随附的开发人员文档。 示例应用提供了一个示例,演示如何实时调用欺诈保护 API。 只要有可能链接,示例应用的文档将链接到实际示例代码。 否则,代码示例将直接包含在文档中。

有关如何配置示例站点以便使用它的信息,请参阅 “配置示例站点”。