跳转到内容
搜索文档

隔离存在风险的 Entra ID 用户

最后更新 查看 MarkdownAgent 设置

Microsoft Entra ID(前身为 Azure Active Directory)根据用户账户被入侵的概率计算用户的风险等级 (risk level)。借助 Cloudflare Zero Trust,您可以将 Entra ID 存在风险的用户列表与 Cloudflare Access 进行同步,并对风险较高的用户应用更严格的 Zero Trust 策略。

本教程展示了当用户被 Entra ID 视为存在风险时,如何自动将其重定向到远程浏览器。

完成所需时间:

1 小时

前提条件

1. 将 Entra ID 设置为身份提供商

请参阅针对 Entra ID 的我们的 IdP 设置说明

2. 添加 Entra ID API 权限

在对基础 IdP 集成进行测试并确认工作正常后,启用其他权限以允许脚本在 Entra ID 中创建和更新存在风险的用户组:

  1. 在 Microsoft Entra ID 中,转到 App registrations(应用注册)

  2. 选择您为 IdP 集成创建的应用程序。

  3. 转到 API permissions(API 权限) 并选择 Add a permission(添加权限)

  4. 选择 Microsoft Graph

  5. 选择 Application permissions(应用程序权限) 并添加以下权限

    • IdentityRiskyUser.ReadAll
    • Directory.ReadWriteAll
    • Group.Create
    • Group.ReadAll
    • GroupMember.ReadAll
    • GroupMember.ReadWriteAll
  6. 选择 Grant admin consent(授予管理员同意)

您将看到已启用的权限列表。

Entra ID 中的 API 权限

3. 将存在风险的用户添加到 Entra ID 组

接下来,配置一个自动化脚本,该脚本将向 Entra ID 安全组中填充存在风险的用户。

要快速入门,请按照下面的分步说明部署我们的示例 Cloudflare Workers 脚本。或者,您可以使用 Azure Functions 或任何其他工具来实现该脚本。

  1. 打开终端并克隆我们的示例项目。

    npm create cloudflare@latest risky-users -- --template https://github.com/cloudflare/msft-risky-user-ad-sync
  2. 转到项目目录。

    cd risky-users
  3. 修改 Wrangler 配置文件以包含以下值:

    {
    	"$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 = [ "* * * * *" ]
  1. 将 Worker 部署到 Cloudflare 的全球网络。

    npx wrangler deploy
  2. 创建一个名为 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 仪表板中的风险用户组

4. 同步存在风险的用户组

接下来,将 Entra ID 存在风险的用户组与 Cloudflare Access 进行同步:

  1. 启用 SCIM 同步

  2. 在 Entra ID 中,将以下组分配给您的 SCIM 企业应用程序:

    • IdentityProtection-RiskyUser-RiskLevel-high
    • IdentityProtection-RiskyUser-RiskLevel-medium
    • IdentityProtection-RiskyUser-RiskLevel-low

Cloudflare Access 现在将与 Entra ID 同步组内成员身份的变化。您可以在 SCIM 应用程序的 Provisioning 页面上验证同步状态。

5. 创建浏览器隔离策略

最后,创建一条 Gateway HTTP 策略来隔离存在风险的用户组的流量。

  1. Cloudflare One 中,转到 Traffic policies(流量策略) > Firewall policies(防火墙策略) > HTTP

  2. 选择 Add a policy(添加策略)

  3. 构建一个包含 User Group Names 规则的隔离策略。例如,以下策略在远程浏览器中为所有被标记为高风险的成员服务 app1.example.comapp2.example.com

    选择器 运算符 逻辑 操作
    Domain(域名) in app1.example.com, app2.example.com And(且) Isolate(隔离)
    User Group Names(用户组名称) in IdentityProtection-RiskyUser-RiskLevel-high

要测试此策略,请参阅 Microsoft 文档以模拟风险检测

这篇文档对您有帮助吗?