你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
教程:使用 Azure Active Directory B2C 配置 Microsoft Dynamics 365 Fraud Protection
组织可以使用 Microsoft Dynamics 365 Fraud Protection (DFP) 评估尝试创建欺诈性帐户和登录名期间的风险。客户使用 Microsoft DFP 评估来阻止或质疑创建新的虚假帐户或破坏帐户的可疑尝试。
本教程介绍如何将 Microsoft DFP 与 Azure Active Directory B2C (Azure AD B2C) 集成。 有指南介绍了如何将 Microsoft DFP 设备指纹以及帐户创建和登录评估 API 终结点合并到 Azure AD B2C 自定义策略中。
了解详细信息:Microsoft Dynamics 365 Fraud Protection 概述
先决条件
若要开始,需要:
- Azure 订阅
- 如果没有,可以获取一个 Azure 免费帐户
- 一个已关联到你的 Azure 订阅的 Azure AD B2C 租户
- Microsoft DFP 订阅
- 请参阅 Dynamics 365 定价
- 可以设置试用版客户端版本
方案描述
Microsoft DFP 集成包括以下组件:
- Azure AD B2C 租户:对用户进行身份验证,并充当 Microsoft DFP 的客户端。 承载一个指纹脚本,该脚本收集执行目标策略的用户的标识和诊断数据。 根据 Microsoft DFP 返回的规则评估结果,它会阻止或质询登录或注册尝试。
- 自定义 UI 模板:自定义 Azure AD B2C 呈现的页面的 HTML 内容。 这些页面包含 Microsoft DFP 指纹所需的 JavaScript 代码片段。
- Microsoft DFP 指纹服务:动态嵌入的脚本,它记录设备遥测和自断言用户详细信息,以创建唯一可识别的指纹。
- Microsoft DFP API 终结点:提供决策结果,并接受反映客户端应用程序采取的操作的最终状态。 Azure AD B2C 使用 REST API 连接器与 Microsoft DFP 终结点进行通信。 通过向 Microsoft Entra 租户授予 client_credentials 进行 API 身份验证,在该租户中,Microsoft DFP 已获得许可并进行安装,以获取持有者令牌。
以下体系结构图体现了实施详情。
- 用户进入登录页,选择创建新帐户的选项,然后输入信息。 Azure AD B2C 收集用户属性。
- Azure AD B2C 调用 Microsoft DFP API 并传递用户属性。
- Microsoft DFP API 使用这些信息并对其进行处理,然后将结果返回 Azure AD B2C。
- Azure AD B2C 接收从 Microsoft DFP API 返回的信息。 如果发生故障,则显示错误消息。 如果成功,则表明用户已通过身份验证且写入到目录中。
设置解决方案
- 创建 Facebook 应用程序,该应用程序配置为允许与 Azure AD B2C 联合。
- 添加创建的 Facebook 机密作为 Identity Experience Framework 策略密钥。
在 Microsoft DFP 下配置应用程序
设置 Microsoft Entra 租户以使用 Microsoft DFP。
设置自定义域
在生产环境中,请对 Azure AD B2C 使用自定义域并对 Microsoft DFP 指纹服务使用自定义域。 这两种服务的域位于同一根 DNS 区域中,以防止浏览器隐私设置阻止跨域 Cookie。 在非生产环境中不需要此配置。
有关环境、服务和域的示例,请参阅下表。
环境 | 服务 | 域 |
---|---|---|
开发 | Azure AD B2C | contoso-dev.b2clogin.com |
开发 | Microsoft DFP 指纹 | fpt.dfp.microsoft-int.com |
UAT | Azure AD B2C | contoso-uat.b2clogin.com |
UAT | Microsoft DFP 指纹 | fpt.dfp.microsoft.com |
生产 | Azure AD B2C | login.contoso.com |
生产 | Microsoft DFP 指纹 | fpt.login.contoso.com |
部署 UI 模板
- 将提供的 Azure AD B2C UI 模板部署到面向公众的 Internet 托管服务(例如 Azure Blob 存储)。
- 将值
https://<YOUR-UI-BASE-URL>/
替换为部署位置的根 URL。
注意
稍后需要基 URL 来配置 Azure AD B2C 策略。
- 在
ui-templates/js/dfp.js
文件中,将<YOUR-DFP-INSTANCE-ID>
替换为 Microsoft DFP 实例 ID。 - 确保为 Azure AD B2C 域名
https://{your_tenant_name}.b2clogin.com
或your custom domain
启用了 CORS。
有关详细信息,请参阅 UI 自定义文档
Azure AD B2C 配置
为 Microsoft DFP 客户端应用 ID 和机密添加策略密钥
- 在设置 Microsoft DFP 的 Microsoft Entra 租户中,创建一个 Microsoft Entra 应用程序并授予管理员同意。
- 为此应用程序注册创建机密值。 记下应用程序客户端 ID 和客户端机密值。
- 将客户端 ID 和客户端机密值另存为 Azure AD B2C 租户中的策略密钥。
注意
稍后需要策略密钥来配置 Azure AD B2C 策略。
替换配置值
在提供的自定义策略中,查找以下占位符,并将它们替换为你实例中的相应值。
占位符 | 替换为 | 说明 |
---|---|---|
{Settings:Production} | 是否在生产模式下部署策略 |
true 或 false |
{Settings:Tenant} | 你的租户短名称 |
your-tenant - 来自 your-tenant.onmicrosoft.com |
{Settings:DeploymentMode} | 要使用的 Application Insights 部署模式 |
Production 或 Development |
{Settings:DeveloperMode} | 是否在 Application Insights 开发人员模式下部署策略 |
true 或 false |
{Settings:AppInsightsInstrumentationKey} | Application Insights 实例的检测密钥* | 01234567-89ab-cdef-0123-456789abcdef |
{Settings:IdentityExperienceFrameworkAppId}在 Azure AD B2C 租户中配置的 IdentityExperienceFramework 应用的应用 ID | 01234567-89ab-cdef-0123-456789abcdef |
|
{Settings:ProxyIdentityExperienceFrameworkAppId} | Azure AD B2C 租户中配置的 ProxyIdentityExperienceFramework 应用的应用 ID | 01234567-89ab-cdef-0123-456789abcdef |
{Settings:FacebookClientId} | 配置用于与 B2C 进行联接的 Facebook 应用的应用 ID | 000000000000000 |
{Settings:FacebookClientSecretKeyContainer} | 将 Facebook 应用机密另存为的策略密钥的名称 | B2C_1A_FacebookAppSecret |
{Settings:ContentDefinitionBaseUri} | 部署 UI 文件的终结点 | https://<my-storage-account>.blob.core.windows.net/<my-storage-container> |
{Settings:DfpApiBaseUrl} | DFP API 实例的基路径 - 在 DFP 门户中找到 | https://tenantname-01234567-89ab-cdef-0123-456789abcdef.api.dfp.dynamics.com/v1.0/ |
{Settings:DfpApiAuthScope} | DFP API 服务的 client_credentials 范围 | https://api.dfp.dynamics-int.com/.default or https://api.dfp.dynamics.com/.default |
{Settings:DfpTenantId} | DFP 已获得许可并安装的 Microsoft Entra 租户(非 B2C)的 ID |
01234567-89ab-cdef-0123-456789abcdef 或 consoto.onmicrosoft.com |
{Settings:DfpAppClientIdKeyContainer} | 将 DFP 客户端 ID 另存为的策略密钥的名称 | B2C_1A_DFPClientId |
{Settings:DfpAppClientSecretKeyContainer} | 将 DFP 客户端机密另存为的策略密钥的名称 | B2C_1A_DFPClientSecret |
{Settings:DfpEnvironment} | DFP 环境的 ID。 | 环境 ID 是将数据发送到的 DFP 环境的全局唯一标识符。 自定义策略应调用 API 终结点,包括查询字符串参数 x-ms-dfpenvid=your-env-id> |
*可以在 Microsoft Entra 租户或订阅中设置 Application Insights。 此值是可选的,但建议使用它来帮助调试。
注意
将许可通知添加到“属性集合”页。 包括记录用户遥测和标识信息以保护帐户的通知。
配置 Azure AD B2C 策略
- 转到 Policies 文件夹中的 Azure AD B2C 策略。
- 按照自定义策略初学者包中的说明下载 LocalAccounts 初学者包。
- 为 Azure AD B2C 租户配置策略。
注意
更新提供的策略,使其与你的租户相关。
测试用户流
- 打开 Azure AD B2C 租户,在“策略”下选择“Identity Experience Framework”。
- 选择前面创建的“SignUpSignIn”。
- 选择“运行用户流”。
- 应用程序:注册的应用(示例为 JWT)。
- 回复 URL:重定向 URI。
- 选择“运行用户流”。
- 完成注册流并创建帐户。
提示
在流中调用 Microsoft DFP。 如果流未完成,请确认用户是否未保存在目录中。
注意
如果使用的是 Microsoft DFP 规则引擎,请在 Microsoft DFP 门户中更新规则。