Microsoft Entra ID(前身为 Azure Active Directory)根据用户账户被入侵的概率计算用户的风险等级 (risk level) ↗。借助 Cloudflare Zero Trust,您可以将 Entra ID 存在风险的用户列表与 Cloudflare Access 进行同步,并对风险较高的用户应用更严格的 Zero Trust 策略。
本教程展示了当用户被 Entra ID 视为存在风险时,如何自动将其重定向到远程浏览器。
完成所需时间:
1 小时
- Microsoft Entra ID Premium P2 许可证
- Cloudflare Browser Isolation 插件
- 设备上已启用 Gateway HTTP 过滤
- 已安装 npm ↗
- 已安装 Node.js ↗
请参阅针对 Entra ID 的我们的 IdP 设置说明。
在对基础 IdP 集成进行测试并确认工作正常后,启用其他权限以允许脚本在 Entra ID 中创建和更新存在风险的用户组:
-
在 Microsoft Entra ID 中,转到 App registrations(应用注册)。
-
选择您为 IdP 集成创建的应用程序。
-
转到 API permissions(API 权限) 并选择 Add a permission(添加权限)。
-
选择 Microsoft Graph。
-
选择 Application permissions(应用程序权限) 并添加以下权限 ↗:
IdentityRiskyUser.ReadAllDirectory.ReadWriteAllGroup.CreateGroup.ReadAllGroupMember.ReadAllGroupMember.ReadWriteAll
-
选择 Grant admin consent(授予管理员同意)。
您将看到已启用的权限列表。
接下来,配置一个自动化脚本,该脚本将向 Entra ID 安全组中填充存在风险的用户。
要快速入门,请按照下面的分步说明部署我们的示例 Cloudflare Workers 脚本。或者,您可以使用 Azure Functions ↗ 或任何其他工具来实现该脚本。
-
打开终端并克隆我们的示例项目。
npm create cloudflare@latest risky-users -- --template https://github.com/cloudflare/msft-risky-user-ad-sync -
转到项目目录。
cd risky-users -
修改 Wrangler 配置文件以包含以下值:
<ACCOUNT_ID>:您的 Cloudflare 账户 ID。<TENANT_ID>:您的 Entra ID Directory (tenant) ID(目录(租户)ID),该 ID 是在将 Entra ID 设置为身份提供商时获取的。<CLIENT_ID>:您的 Entra ID Application (client) ID(应用程序(客户端)ID),该 ID 是在将 Entra ID 设置为身份提供商时获取的。
{ "$schema": "./node_modules/wrangler/config-schema.json", "name": "risky-users", // Set this to today's date "compatibility_date": "2026-08-17", "main": "src/index.js", "workers_dev": false, "account_id": "<ACCOUNT-ID>", "vars": { "AZURE_AD_TENANT_ID": "<TENANT-ID>", "AZURE_AD_CLIENT_ID": "<CLIENT-ID>", }, "triggers": { "crons": ["* * * * *"], }, }"$schema" = "./node_modules/wrangler/config-schema.json" name = "risky-users" # Set this to today's date compatibility_date = "2026-08-17" main = "src/index.js" workers_dev = false account_id = "<ACCOUNT-ID>" [vars] AZURE_AD_TENANT_ID = "<TENANT-ID>" AZURE_AD_CLIENT_ID = "<CLIENT-ID>" [triggers] crons = [ "* * * * *" ]
-
将 Worker 部署到 Cloudflare 的全球网络。
npx wrangler deploy -
创建一个名为
AZURE_AD_CLIENT_SECRET的机密变量。wrangler secret put AZURE_AD_CLIENT_SECRET系统会提示您输入机密的值。输入在将 Microsoft Entra ID 设置为身份提供商时获取的 Client secret(客户端密钥)。
Worker 脚本将开始每分钟执行一次。要查看实时日志,请运行以下命令并等待脚本执行:
wrangler tail --format pretty初次运行后,自动生成的组将显示在 Entra ID 仪表板中。
接下来,将 Entra ID 存在风险的用户组与 Cloudflare Access 进行同步:
-
在 Entra ID 中,将以下组分配给您的 SCIM 企业应用程序:
IdentityProtection-RiskyUser-RiskLevel-highIdentityProtection-RiskyUser-RiskLevel-mediumIdentityProtection-RiskyUser-RiskLevel-low
Cloudflare Access 现在将与 Entra ID 同步组内成员身份的变化。您可以在 SCIM 应用程序的 Provisioning 页面上验证同步状态。
最后,创建一条 Gateway HTTP 策略来隔离存在风险的用户组的流量。
-
在 Cloudflare One ↗ 中,转到 Traffic policies(流量策略) > Firewall policies(防火墙策略) > HTTP。
-
选择 Add a policy(添加策略)。
-
构建一个包含 User Group Names 规则的隔离策略。例如,以下策略在远程浏览器中为所有被标记为高风险的成员服务
app1.example.com和app2.example.com:选择器 运算符 值 逻辑 操作 Domain(域名) in app1.example.com,app2.example.comAnd(且) Isolate(隔离) User Group Names(用户组名称) in IdentityProtection-RiskyUser-RiskLevel-high
要测试此策略,请参阅 Microsoft 文档以模拟风险检测 ↗。