Z
ztna-success
POC progress dashboard
← POCs

test customer

Cloudflare Zero Trust · owner dror@globaldots.com · status scoping · 50 test users · target 2026-05-14

Customer share link
https://ztna-success.globaldots.net/s/sh_6v9erq7vsd2s294n4qqy
Overall
0 / 13
criteria passed
POC phase
0 / 11
what the customer validates
Project kickoff
0 / 2
runs post-signing

SSO

access Not started POC must have

All POC applications authenticate through the customer IdP (SAML or OIDC) with MFA enforced. No local accounts, no per-app identity duplication.

Test procedure — Cloudflare Zero Trust · Zero Trust → Settings → Authentication (SAML / OIDC / Azure AD / Okta / Google / OneLogin / …)
Vendor pack default (read-only):
1. Add the customer IdP in Zero Trust → Settings → Authentication; verify test login.
2. Configure it as the login method for Access applications in the POC.
3. Write an Access policy using an IdP group and a custom claim (department, role, etc.) and validate with two users (in-scope, out-of-scope).
4. Confirm MFA is enforced by the IdP and logged in Access.
Pass threshold: All POC apps authenticate via the IdP; policies resolve user, group, and one custom claim correctly; MFA events visible in Access logs.

TLS termination

security Not started POC must have

TLS terminates at the vendor edge (for published apps and for inline inspection of user traffic) using customer-approved certificates and cipher policy. The customer can see where termination happens and validate the chain.

Test procedure — Cloudflare Zero Trust · Edge TLS for published apps (Universal / custom certs) + WARP/Gateway TLS decryption for inline inspection
Vendor pack default (read-only):
1. For published apps: confirm TLS terminates at Cloudflare with the expected cert (Universal or uploaded custom), verify SAN coverage and chain.
2. For Gateway outbound inspection: enable 'Inspect TLS' in Settings → Network; distribute the Cloudflare cert (or custom CA) via MDM.
3. Browse a handful of test HTTPS sites from a WARP-enabled endpoint; confirm category / URL / DLP policies evaluate on decrypted traffic.
4. Add known-pinned destinations (banking, health, government) to the 'Do Not Inspect' list and confirm they bypass decryption.
Pass threshold: Published hostnames present the configured certificate; inline inspection produces policy hits on decrypted traffic; pinned destinations bypass inspection cleanly.

Monitoring AI usage via TLS decryption

security Not started POC should have

Usage of public GenAI tools (ChatGPT, Gemini, Claude, Copilot, etc.) is visible in logs and governable by policy — who, what tool, how often, what was sent — via inline TLS decryption on the user's outbound traffic.

Test procedure — Cloudflare Zero Trust · Gateway HTTP policies + TLS decryption + DLP, with category/app matchers for GenAI destinations
Vendor pack default (read-only):
1. Create a Gateway HTTP policy that matches the 'Generative AI' application category (or specific hostnames: chat.openai.com, gemini.google.com, claude.ai, copilot.microsoft.com, etc.).
2. Set the action to Allow with log, and attach a DLP profile that blocks uploads containing seeded PII / source-code patterns.
3. From a test device, visit the AI destinations; confirm activity is logged per user.
4. Paste a seeded sensitive sample into the AI tool and attempt to submit; confirm the upload is blocked and the DLP incident is recorded.
5. Pull a Gateway analytics report filtered to the AI category.
Pass threshold: AI-destination activity is visible per user; DLP-matched submissions are blocked; report shows volume and user-level AI usage over time.

LLM API-based observability and guardrails

security Not started POC nice to have

For LLM calls the business itself makes (application backends, internal agents, AI copilots), a vendor-provided layer sits between the app and the model provider — observing prompts/responses, enforcing guardrails, and surfacing usage and cost in a dashboard.

Test procedure — Cloudflare Zero Trust · Cloudflare AI Gateway (dashboards, caching, rate limits, guardrails) as a shim in front of LLM providers
Vendor pack default (read-only):
1. In AI Gateway, create a gateway and note the unique endpoint for the chosen provider.
2. Change the application's LLM base URL from api.openai.com (or equivalent) to the AI Gateway endpoint.
3. Send a handful of prompts from the app; confirm requests and token usage appear in the AI Gateway dashboard.
4. Enable caching and re-send an identical prompt; confirm cache hit in the dashboard.
5. Configure a rate limit or a simple guardrail; confirm enforcement.
Pass threshold: LLM calls are visible per request in the AI Gateway dashboard; caching demonstrably reduces provider calls; rate limit / guardrail fires on policy violation.

Clientless access

access Not started POC must have

Users and third parties can reach internal web apps from a plain browser with no agent installed, authenticated via the IdP and governed by policy — reducing the unmanaged-device / contractor friction of traditional VPNs.

Test procedure — Cloudflare Zero Trust · Cloudflare Access → Self-hosted application (browser-rendered, no WARP required)
Vendor pack default (read-only):
1. Zero Trust → Access → Applications → Add → Self-hosted. Configure the application domain and IdP.
2. Create a policy scoped to a test user group requiring MFA.
3. From a plain browser (no WARP / no agent), navigate to the application URL.
4. Confirm IdP redirect, MFA, and successful access.
5. Repeat with a user outside the allowed group; confirm the Access block page.
Pass threshold: Authorized user reaches the app from a clean browser in < 10s end-to-end; unauthorized user sees the Access block page with correlation ID in logs.

Access to internet (SWG)

security Not started POC must have

All outbound user web traffic flows through the vendor's SWG with URL/category filtering, threat protection, and per-user reporting. Acceptable-use policy is enforced consistently on-site and off-site.

Test procedure — Cloudflare Zero Trust · Cloudflare Gateway (DNS + HTTP) via WARP client
Vendor pack default (read-only):
1. Create Gateway DNS and HTTP policies blocking representative risk categories (malware, phishing, gambling, adult).
2. From a test device, browse URLs from each blocked category; confirm the branded block page.
3. Browse a benign category and confirm it flows normally.
4. Pull the Gateway analytics report scoped to a test user; confirm per-user activity is visible.
Pass threshold: All test URLs from each blocked category are denied; per-user analytics are complete; block page is customer-branded.

Access to internal environments (ZTNA)

connectivity Not started POC must have

Users reach specific internal apps and resources (web, SSH, RDP, DB, thick-client) based on identity + device posture — replacing broad VPN network access.

Test procedure — Cloudflare Zero Trust · Cloudflare Access + cloudflared Tunnel (browser-based for web, WARP + Private Network for non-HTTP)
Vendor pack default (read-only):
1. Publish a target internal web app as an Access self-hosted application (tunnel origin).
2. For a non-HTTP target (SSH/RDP/DB), add a Private Network route in the tunnel and scope Access Private Network policies to the user group.
3. From a WARP-connected test device (in group), open the web app and the SSH/RDP session; confirm both succeed.
4. Remove the user from the allow policy; retest both; confirm both deny.
Pass threshold: Authorized user reaches both web and non-web targets with identity+posture enforced; unauthorized user has no access to any target, not just no route.

Hostname-based routing

connectivity Not started POC must have

Internal apps can be published and reached on a customer-chosen hostname (public or private), with the vendor making policy decisions based on the hostname — no need to expose raw IPs or re-IP when apps move.

Test procedure — Cloudflare Zero Trust · Cloudflare Tunnel public hostnames + Access hostname-based policies
Vendor pack default (read-only):
1. In the tunnel config, add two public hostnames on the same tunnel pointing at different origins (or different paths of the same origin).
2. For each public hostname, create an Access self-hosted application with a different policy.
3. From a test user, confirm each hostname routes to the intended origin with the intended policy.
4. Confirm the origin IP is not directly reachable from the public internet.
Pass threshold: Routing is strictly hostname-based; each hostname carries its own policy; origins are not publicly reachable.

Terraform support

operations Not started POC must have

The vendor is configurable via a maintained Terraform provider — identity, policy, apps, tunnels, sites — so the customer can manage the estate as code in their existing pipelines.

Test procedure — Cloudflare Zero Trust · Cloudflare Terraform provider (cloudflare/cloudflare) — covers Access, Gateway, Tunnel, Zero Trust, DNS, Workers, etc.
Vendor pack default (read-only):
1. Write a minimal Terraform config that creates: an Access application + policy, a Gateway HTTP rule, a tunnel, an IdP / SCIM integration resource.
2. `terraform plan` / `apply` and confirm all resources are created in the dashboard.
3. Change an attribute in Terraform (e.g. add a group to a policy); apply and confirm drift is detected and applied.
4. Manually change a resource in the dashboard; re-run plan; confirm drift is detected.
5. `terraform destroy` and confirm clean removal.
Pass threshold: All representative resource types are managed by Terraform with clean create / update / drift-detect / destroy. Provider documentation covers every resource used.

SIEM setup

observability Not started Project kickoff must have

Access, security, and admin-change events stream to the customer's SIEM with documented fields and retention meeting policy. Alerts can be built off the stream.

Test procedure — Cloudflare Zero Trust · Cloudflare Logpush → Splunk / Sentinel / Datadog / S3 / Google Cloud / generic HTTP
Vendor pack default (read-only):
1. Create Logpush jobs for Access, Gateway DNS, Gateway HTTP, Audit, WARP, and DNS Firewall (as applicable) to the target SIEM.
2. Trigger representative events: successful login, denied login, blocked URL, policy change.
3. Confirm events arrive in the SIEM within the documented delivery window and parse against the published schema.
4. Confirm admin-change events appear in the Audit stream.
5. Validate retention matches customer policy (Logpush supplies the events; retention is configured in the SIEM side).
Pass threshold: All enabled event types arrive in the SIEM with expected fields parsed; admin-change events are present; delivery meets Cloudflare's documented timing.

Alerts and notifications

operations Not started Project kickoff should have

Critical events (tunnel down, cert expiry, policy change, quota breach, security incident) produce alerts to the right channel (email, Slack, webhook, PagerDuty) — no waiting for a user to report the outage.

Test procedure — Cloudflare Zero Trust · Cloudflare Notifications (account-wide, filtered by product/event) → Email / Webhook / PagerDuty / Slack (via webhook)
Vendor pack default (read-only):
1. In Notifications, create policies for at least three critical event types: tunnel health, WARP client health / posture, Access policy changes, certificate expiry.
2. Route each policy to the chosen channel (email / webhook / PagerDuty).
3. Trigger each event (stop a tunnel replica for tunnel-health, change a policy to test admin-change).
4. Confirm each notification arrives on the expected channel within the vendor's documented timing.
5. Adjust filters to reduce noise; confirm only intended events still alert.
Pass threshold: Each configured alert fires on the correct event, reaches the target channel within documented SLA, and can be tuned without losing signal.

MDM enforcement

access Not started POC must have

Access is gated on the device being enrolled and compliant in the customer's MDM (Intune, JAMF, Kandji, Workspace ONE, etc.). Unmanaged or out-of-compliance devices are blocked or stepped-up regardless of user identity.

Test procedure — Cloudflare Zero Trust · WARP device posture → MDM signals (Intune, Kandji, JAMF, Workspace ONE) + certificate-based device authentication
Vendor pack default (read-only):
1. In Zero Trust → Settings → WARP Client → Device posture, enable the MDM provider integration (Intune / JAMF / Kandji / etc.) and configure the compliance signal.
2. Add a 'Require' rule on the Access application under test for: MDM enrolled + compliant.
3. From an MDM-enrolled, compliant test device, validate access succeeds.
4. Either unenroll the device, mark it non-compliant in MDM, or remove the device certificate. Verify each scenario independently blocks access with a clear user message.
5. Re-enroll and validate re-admission.
Pass threshold: Non-enrolled / non-compliant device is blocked regardless of user identity; compliant device is admitted; Access log shows which posture check failed.

Tablet users can access browser based RDP

access custom Not started POC must have

Customer has a large group of tablet based users who occasionally access rdp

Test procedure — Cloudflare Zero Trust

No default procedure — this criterion is not in the Cloudflare Zero Trust pack. You can still write a custom procedure below.