模块 2 — 接入你的身份提供商
目标: 接入你的企业登录系统,让 Cloudflare 知道每个用户是谁、属于哪些群组。这是后续所有策略赖以运行的基础。
| 👤 谁来做 | IT / 身份管理员 |
| ⏱️ 用时 | 约 45 分钟 |
| 🎯 完成后你将拥有 | 用户可用企业账户登录;Test 按钮能显示其邮箱 + 群组 |
| ✋ 开始前 | Microsoft Entra ID(或 Okta / Google Workspace)的管理员权限,以及模块 1 得到的团队域名 |
本模块完整演示 Microsoft Entra ID(Azure AD)——最常见的情形。Okta 与 Google Workspace 仅在“从哪里复制取值”上不同,末尾附有简要说明。
首先:复制你的回调 URL
每个身份提供商都需要你提供这个值。现在就记下来(把 <team-name> 换成你的):
https://<team-name>.cloudflareaccess.com/cdn-cgi/access/callback
本指南称它为你的回调 URL(callback URL)。(Google 还需要 JavaScript 来源:https://<team-name>.cloudflareaccess.com。)
💡 你用的是哪个提供商? 各部分如下:A 部分 Microsoft Entra ID(Azure AD)· B 部分 Okta · C 部分 Google Workspace · D 部分 以上都不是 / 先简单起步。 之后所有人都做 E 部分(测试) 和 F 部分(MFA)。
A 部分 — Microsoft Entra ID(Azure AD)
你会在两个地方操作:先在微软管理中心,再回到 Cloudflare。
A1. 在 Microsoft Entra 中注册一个应用
- 👉 新开标签页访问
https://entra.microsoft.com,用全局管理员账户登录。 - 👉 左侧菜单:Applications → Enterprise applications。
- 👉 点击页面顶部 + New application。
- 👉 点击顶部 + Create your own application。
- 📺 右侧弹出面板。⌨️ 命名为
Cloudflare Access。 - 👉 选择 “Register an application to integrate with Microsoft Entra ID (App you're developing)”。 ⚠️ 注意: 不要选画廊/SaaS 应用——你是在注册自己的应用。
- 👉 点击 Create。
📺 你会看到: “Register an application” 页面,含 Redirect URI 部分。
- 👉 在 Redirect URI 下,平台下拉选 Web。
- ⌨️ 粘贴你的回调 URL:
https://<team-name>.cloudflareaccess.com/cdn-cgi/access/callback - 👉 点击 Register。
✅ 检查点: 你现在位于该应用的 Overview 页面。
A2. 复制三个值
在应用 Overview 页面:
- 📋 复制 Application (client) ID → 保存。
- 📋 复制 Directory (tenant) ID → 保存。
然后创建密钥:
3. 👉 应用左侧菜单 → Certificates & secrets → Client secrets 选项卡 → + New client secret。
4. ⌨️ 说明填 Cloudflare,设置有效期(如 24 个月)。
5. 👉 点击 Add。
6. 📋 立即复制密钥的 Value(不是 “Secret ID”)→ 保存。
⚠️ 注意: 密钥 Value 只显示一次。若离开页面就必须删除并重建。此外,密钥过期后所有登录都会失效——把过期日期记进日历。
A3. 授予 Cloudflare 所需权限(让群组生效)
-
👉 应用左侧菜单 → API permissions → + Add a permission。
-
👉 选择 Microsoft Graph → Delegated permissions。
-
⌨️ 搜索并勾选下列七项权限:
权限 用途 email用户邮箱 offline_access刷新令牌 openid标准登录 profile基本资料 User.Read读取已登录用户 Directory.Read.All读取目录 GroupMember.Read.All读取群组成员(群组策略所需) -
👉 点击 Add permissions。
-
👉 点击 Grant admin consent for [你的组织] → Yes。
✅ 检查点: 七项权限均显示绿色勾选的 “Granted for [你的组织]”。
A4. 在 Cloudflare 中添加该提供商
- 👉 回到 Zero Trust 控制台(
https://one.dash.cloudflare.com)。 - 👉 Settings → Authentication(也可能显示为 Integrations → Identity providers)。
- 👉 在 Login methods 下点击 Add new。
- 👉 选择 Azure AD(Microsoft Entra ID)。
- ⌨️ 用你保存的值填入:
字段 粘贴 Application (client) ID 来自 A2 Application (client) Secret A2 里的密钥 Value Directory (tenant) ID 来自 A2 - 👉 开启这些选项:
- ✅ Support Groups(让 Cloudflare 读取 Entra 群组)
- ✅ Proof Key for Code Exchange (PKCE)
- ✅ Enable SCIM(推荐——自动同步用户/群组,并可在成员被停用时撤销访问)
- 👉 点击 Save。
✅ 检查点: “Azure AD” 现已出现在你的登录方式列表中。现在跳到 E 部分(测试)。
B 部分 — Okta
B1. 在 Okta 中创建应用
- 👉 登录 Okta 管理控制台。
- 👉 Applications → Applications → Create App Integration。
- 👉 选择 OIDC - OpenID Connect → Web Application → Next。
- ⌨️ 命名为
Cloudflare Access。 - ⌨️ 在 Sign-in redirect URIs 粘贴你的回调 URL:
https://<team-name>.cloudflareaccess.com/cdn-cgi/access/callback - 👉 在 Assignments 选择谁可使用(如“组织内所有人”),然后 Save。
B2. 复制两个值
在应用 General 选项卡:
- 📋 复制 Client ID。
- 📋 复制 Client secret。
- 📝 记下你的 Okta 域名(你登录时的网址,如
https://my-company.okta.com)。
B3. 在 Cloudflare 中添加 Okta
- 👉 Zero Trust → Settings → Authentication → Add new → Okta。
- ⌨️ 填入:
Cloudflare 字段 取值 App ID Okta Client ID Client secret Okta Client secret Okta account URL https://my-company.okta.com - 👉 若要使用群组策略,开启 Support Groups。
- 👉 点击 Save。
⚠️ 注意: 若你的组织有超过 100 个 Okta 群组,还必须创建一个只读 Okta API 令牌并填入,否则群组查询会失败。(Okta 管理端 → Security → API → Tokens → Create Token。)
✅ 检查点: “Okta” 出现在登录方式中。现在前往 E 部分(测试)。
C 部分 — Google Workspace
C1. 在 Google 中创建 OAuth 凭据
- 👉 打开
https://console.cloud.google.com→ 选择或新建一个项目。 - 👉 APIs & Services → Credentials → + Create Credentials → OAuth client ID。
- 👉 应用类型:Web application。
- ⌨️ Authorized JavaScript origins → 添加:
https://<team-name>.cloudflareaccess.com - ⌨️ Authorized redirect URIs → 添加你的回调 URL:
https://<team-name>.cloudflareaccess.com/cdn-cgi/access/callback - 👉 点击 Create。
- 📋 复制 Client ID 与 Client secret。
C2. 在 Cloudflare 中添加 Google
- 👉 Zero Trust → Settings → Authentication → Add new。
- 👉 选择 Google(任意 Gmail)或 Google Workspace(你的企业域名 + 群组)。
- ⌨️ 粘贴 Client ID 与 Client secret。
- 对 Google Workspace(读取群组):按屏幕提示提供你的管理员邮箱 / 域名,让 Cloudflare 能读取群组成员。
- 👉 点击 Save。
✅ 检查点: “Google Workspace” 出现在登录方式中。现在前往 E 部分(测试)。
D 部分 — 还没有企业 IdP?
你仍可继续,之后再接入真正的 IdP。
- Cloudflare 是新账户的默认登录——用户用 Cloudflare 账户登录。
- 或添加 One-time PIN(OTP):Zero Trust → Settings → Authentication → Add new → One-time PIN。用户通过邮箱收到验证码。适合承包商和快速测试。
💡 提示: 即使接入了企业 IdP,也建议保留 OTP 或 Cloudflare 登录作为备用——万一 SSO 连接出问题,这就是你的安全网。
E 部分 — 测试你的连接(所有人都要做)
- 👉 在 Settings → Authentication → Login methods 中找到你的提供商。
- 👉 点击该提供商,再点击 Test 按钮。
📺 你会看到: 新标签页打开,对你的提供商执行一次真实登录,然后显示Cloudflare 收到的身份信息——用户的邮箱以及(关键的)群组。
✅ 检查点——这是关键时刻:
- ✅ 登录成功。
- ✅ 结果显示你的邮箱。
- ✅ 结果显示你的群组(如
Engineering、Finance)。
⚠️ 如果没有群组: 说明群组权限/声明未配置好。回到你的提供商:
- Entra ID: 确认已添加
GroupMember.Read.All并已授予管理员同意(A3),且 Cloudflare 中 Support Groups 已开启(A4)。 - Okta: 启用群组声明;若群组超过 100 个,添加 API 令牌。
- Google: 确认选的是 Google Workspace(不是普通 Google)并提供了管理员/域名访问。
若此测试里没有群组,你后续模块中基于群组的访问规则将无法匹配。请先修复再继续。
F 部分 — 开启多重认证(MFA)
- 👉 Zero Trust → Access controls → Access settings(旧菜单:Settings → Authentication → Authentication settings)。
- 👉 配置:
设置 推荐 Allow multi-factor authentication (MFA) 开启 Authentication methods 选择你批准的因子 Use identity provider MFA 开启——复用你 IdP 的 MFA,避免二次提示 Apply global MFA settings by default 开启 Authentication duration 24h(敏感应用后续用更短) - 👉 点击 Save。
✅ 检查点: 之后的登录都会强制 MFA。
✅ 模块 2 完成!
你现在拥有:
- ✅ 已把企业登录接入 Cloudflare
- ✅ 一次通过的 Test,显示邮箱与群组
- ✅ (推荐)已启用 SCIM 自动同步
- ✅ 已开启 MFA
- ✅ 保留了备用登录方式(OTP / Cloudflare)
快速排障
| 问题 | 解决办法 |
|---|---|
| 测试时报 “Redirect URI mismatch” | IdP 里的回调 URL 与此处不完全一致。重新复制,含 https:// 与 /cdn-cgi/access/callback,且无尾随空格 |
| 测试显示邮箱但没有群组 | 缺少群组权限/声明——见 E 部分的 ⚠️ 说明 |
| “Invalid client secret” | 密钥错误或已过期。重建一个并更新到 Cloudflare(Entra 见 A2;Okta/Google 重新复制) |
| 用户能登录但你无法停用他们 | 启用 SCIM(Entra/Okta),让离职同步并撤销会话 |
| 测试 SAML 时被锁在门外 | 用你的备用 OTP/Cloudflare 登录(D 部分)重新进入 |
👉 下一步:模块 3 — 设备注册(WARP)
你将安装 Cloudflare One 客户端,让设备安全连接并上报健康状态。