Access
Checks who you are before letting you into an app — no VPN, no trusted network required.
What is Access?
Cloudflare Access puts an identity check in front of your applications. Before anyone can open an app, they must log in and prove they're allowed — based on who they are, not which network they're on.
This is the Zero Trust idea: never automatically trust someone just because they're inside the office network. Every request is verified. Access checks identity using providers you already use, like Google or GitHub, or a one-time PIN sent to an email.
Think of it like…
A receptionist who checks your ID at every single door, instead of an old building where badging in once at the lobby lets you wander anywhere.
Why use it instead of a VPN?
A VPN (Virtual Private Network) drops you onto the whole internal network and trusts you broadly once you're connected. That's risky and clunky. Access grants entry to one specific app at a time, per person.
Per-app control
Grant access to exactly one app, not the entire network behind it.
Nothing to install
For web apps, users just visit a URL and log in — no VPN client needed.
Use existing logins
Plug in Google Workspace, GitHub, Microsoft Entra ID, and more as identity sources.
Full audit log
See exactly who accessed what and when — great for security reviews.
How to protect an app
Everything happens in the Cloudflare Zero Trust dashboard. Here's how to put a login wall in front of an app and decide who gets in.
Connect a login provider
In Zero Trust → Settings → Authentication, add an identity provider. The simplest is the built-in One-time PIN, which emails users a code; or connect Google/GitHub.
Add your application
Go to Access → Applications → Add an application → Self-hosted. Enter the app's domain, e.g. dashboard.example.com (often a Cloudflare Tunnel hostname).
Create an Allow policy
Add a policy with action Allow and an Include rule that matches who should get in — for example, emails ending in @yourcompany.com.
Policy name: Company staff Action: Allow Include: Emails ending in @yourcompany.com Require: (optional) Identity provider = GoogleSave and test
Save the application. Now visiting the app shows a Cloudflare login screen first; only people matching your policy get through to the app.
Include / Require / Exclude
Include is OR logic (match any), Require is AND logic (must also match), Exclude is NOT (block these). Combine them to express rules like 'company emails, but require MFA, except contractors'.
Key concepts
Zero Trust
A model that verifies every request and trusts no one by default, inside or outside.
Application
The thing you're protecting — a self-hosted site, an SSH server, or a SaaS app.
Policy
A rule deciding Allow, Block, or Bypass for a set of people.
Identity provider
Where logins come from: Google, GitHub, Microsoft Entra ID, or email PIN.
One-time PIN
The simplest login: Cloudflare emails the user a temporary code. No IdP setup needed.
Device posture
Optional checks that the user's device is healthy (e.g. disk encrypted) before allowing in.
Tips & billing
Pairs perfectly with Tunnel
Use Cloudflare Tunnel to connect a private app without opening ports, then put Access in front of it for the login wall. Together they replace a VPN for most internal tools.
- Cloudflare's Zero Trust free plan covers up to 50 users at no cost.
- Access works for self-hosted web apps, SSH/RDP, and many SaaS apps.
- Start with One-time PIN to test quickly, then connect a real identity provider later.
- Every login attempt is logged, giving you a clear audit trail.
Related products
menu_bookOfficial docsopen_in_new