TTechclick All lessons
Zscaler Β· Batch 11 Β· Lesson 4L2 / IMPLEMENTATION

Authentication & deployment β€” who the user is, and how they get ZCC

Forwarding gets the packet to the PSE. Authentication tells the PSE who sent it. This lesson covers the three auth options (Hosted DB / SAML / Kerberos), why 99% of enterprises pick SAML, how the IdP integration actually works (Azure AD / Okta / Ping), SCIM provisioning, the ZIdentity layer, and how you roll ZCC out to thousands of laptops without breaking anything.

πŸ“… May 24, 2026 Β· ⏱ 15 min read Β· 🏷 10-question assessment included
🎯 By the end of this lesson, you'll be able to

⚑ Quick Answer

Lesson 4 of Zscaler Batch 11. Authentication options (Hosted DB / SAML / Kerberos), IdP integration with Azure AD / Okta / Ping, full SAML assertion walkthrough, SCIM provisioning, ZIdentity, and ZCC enrollment + deployment patterns β€” with 2 infographics and 10-question scenario assessment.

Start here Β· understand the lesson before the detail

What you are learning

This lesson explains two connected but different jobs: authentication proves who the user is, while deployment puts Client Connector and the correct profiles on the device.

In plain English

SAML lets Zscaler rely on an enterprise identity provider such as Microsoft Entra ID or Okta. SCIM keeps users and groups synchronised. Client Connector deployment then gives the endpoint the forwarding and posture profiles needed for traffic steering.

Real example

A user can sign in successfully but receives the wrong web policy. Authentication worked; the issue may be a missing group claim or stale SCIM membership. Reinstalling Client Connector would treat the wrong layer.

Follow this flow

  • The user requests a Zscaler-protected service.
  • Zscaler redirects the browser to the identity provider.
  • The identity provider authenticates the user and signs an assertion.
  • Zscaler validates the assertion and maps groups.
  • Client Connector receives the appropriate app, forwarding, and posture profiles.

Evidence to collect

  • SAML assertion issuer, audience, and signature
  • User and group mapping in Zscaler
  • SCIM provisioning status
  • Client Connector profile assignment

Common mistake to avoid

Do not confuse authentication with provisioning. SAML proves identity during sign-in; SCIM creates, updates, and disables directory objects. JIT-only designs can leave stale accounts when employees leave.

A user is redirected to an identity provider, signs in, returns with signed identity, and receives Zscaler group policy while SCIM keeps users and groups updated.
ChatGPT-generated beginner infographic for this lesson. Read the labelled flow once, then continue into the technical detail below.

Key terms before you continue

IdPSystem that authenticates the user.
SAMLSigned identity exchange for SSO.
SCIMUser and group provisioning.
ZCC ProfileEndpoint configuration applied by Client Connector.

Pick where you want to start

Why this lesson matters

Without identity, ZIA can only apply Location policy β€” the lowest-resolution control. Identity unlocks per-user, per-group, per-department policy: "engineers can access GitHub, marketing can't access Reddit, the CFO bypasses bandwidth caps." Identity is also what lets ZPA replace VPN β€” every per-app access decision is keyed on the user's IdP identity + group membership, not on a network port.

Getting auth wrong has loud failure modes: users see the wrong policy (security incident), or they hit a SAML loop (helpdesk floods), or new joiners can't log in for days (HR escalates). Auth is the spine β€” get it right once, everything downstream gets easier.

Three authentication methods β€” quick compare

MethodWho manages usersWhen to useDownside
Hosted DBZscaler (local user store in the CA)PoC, lab, very small orgs (<50 users)Manual user mgmt β€” no SSO, no group sync. Doesn't scale.
SAML SSOYour IdP (Azure AD / Okta / Ping / ADFS)99% of enterprises β€” the defaultInitial setup is the trickiest 30 minutes of any rollout
KerberosActive Directory (on-prem)Strictly on-prem Windows estates already AD-joinedBrittle behind proxies; cloud-IdP era killed Kerberos use

If you're starting a fresh rollout in 2026, the answer is SAML. Hosted DB is for labs. Kerberos is legacy β€” don't introduce it now.

Quick check Β· Auth method

A 3000-user enterprise already runs Azure AD for everything else and wants SSO plus group-based policy. Which authentication method do you pick?

Correct: b. SAML against the existing IdP is the answer for 99% of enterprises β€” Hosted DB has no SSO and no group sync (labs only), and Kerberos is on-prem-only and brittle behind proxies.

SAML β€” the assertion walkthrough

SAML feels mystical until you've walked one assertion. Then it's mechanical. Here's exactly what happens when a user types http://gateway.zscaler.net (the ZIA enforcement URL) into a fresh browser:

Legend actor lanes & messages — browser, SP, IdP (royal) SAML actor / endpoint box (cyan→magenta) identity provider side (magenta) assertion valid / auth succeeds signature rejected / SAML loop

What's in a SAML assertion

The XML SAML Response payload is what makes auth actually mean something. Boiled down it carries:

ZIA reads the AttributeStatement to map the user to groups / departments / policies. Get the attribute names wrong in the IdP config and group-based policies silently break.

β–Ά Watch one SAML login travel ZIA ↔ Azure AD

A user hits gateway.zscaler.net with a fresh browser. Press Play for the healthy SP-initiated flow, then Break it to see the Monday-morning cert-rotation SAML loop β€” and the fix.

β‘  Browser β†’ SPUser opens gateway.zscaler.net. ZIA (the SP) has no session yet, so it must establish identity before any traffic is allowed.
β–Ό
β‘‘ 302 β†’ IdPZIA returns a 302 redirect carrying a SAML AuthnRequest (Issuer = ZIA EntityID, ACS = ZIA's URL) to login.microsoftonline.com.
β–Ό
β‘’ IdP loginAzure AD authenticates the user β€” password, MFA, device check β€” at the IdP. The credentials never touch ZIA.
β–Ό
β‘£ Signed assertionThe IdP returns a signed SAML Response (NameID, Group, dept) β€” X.509-signed with the IdP's private key β€” POSTed back through the browser to ZIA's ACS.
β–Ό
β‘€ SP validatesZIA validates the signature against the IdP cert in its metadata, checks AudienceRestriction and NotBefore/NotOnOrAfter, then creates a session cookie.
β–Ό
β‘₯ Policy appliesZIA reads the AttributeStatement, maps the user to groups/department, redirects to the original URL β€” now per-user policy is enforced.
Press Play to step through the healthy SAML flow, then press Break it.
Quick check Β· SAML assertion

In the SP-initiated flow above, who actually signs the SAML assertion, and who validates the signature?

Correct: c. The IdP holds the SAML signing private key and signs every assertion; the SP (ZIA) holds the IdP's public cert via metadata import and validates each one. TLS protects transport; the SAML signature is independent application-layer integrity.

Configuring Azure AD as the ZIA IdP β€” step-by-step

Azure AD Portal Β· create the SAML app for ZIA
1. Enterprise Applications β†’ New Application β†’ Browse the gallery
2. Search "Zscaler" β†’ "Zscaler ZIA - Service Provider" template
3. Single sign-on β†’ SAML
4. Basic SAML Configuration:
   Identifier (Entity ID):  https://login.zscaler.net  (or your cloud)
   Reply URL (ACS):         https://login.zscaler.net/sfc_sso
   Sign on URL:             https://login.zscaler.net

5. User Attributes & Claims:
   - emailaddress  β†’  user.mail
   - displayname   β†’  user.displayname
   - department    β†’  user.department
   - memberOf      β†’  user.assignedroles  (or send groups as user.groups)

6. SAML Signing Certificate β†’ Download Federation Metadata XML

7. Users and groups β†’ assign the AD groups that should get Zscaler

8. In ZIA Admin Portal:
   Administration β†’ Authentication β†’ SAML β†’
   Upload IdP Metadata XML β†’ Auto-Provisioning ON
   β†’ Save β†’ Activate
πŸ’‘Pro Tip β€” one IdP app for ZIA + ZPA, not two

Many engineers create separate Azure AD enterprise apps for ZIA and ZPA. You don't have to. The same SAML app can serve both β€” set up the ZIA SP first, then add ZPA's ACS URL as a second Reply URL in the same app. Users get one consent screen, one set of group assignments, one place to audit. Cleaner ops, simpler audit.

Modern path: use the Federation Metadata URL instead of uploading static XML. In Azure AD, the URL is https://login.microsoftonline.com/{tenant}/federationmetadata/2007-06/federationmetadata.xml (Okta and Ping have equivalent URLs). Paste that URL into ZIA's SAML config β€” ZIA polls it on a schedule and auto-rotates the IdP signing cert. Eliminates the "old cert in metadata β†’ SAML loop on Monday morning" failure entirely, which is otherwise the #1 SAML incident pattern.

SCIM provisioning vs JIT β€” pick one

When a user appears in Azure AD, how do they appear in ZIA? Two answers:

AspectJITSCIM
Setup effortZero (just turn on Auto-Provisioning)Configure SCIM endpoint + secret token in Azure AD
De-provisioningManual (user lingers in ZIA until you clean up)Automatic β€” disable in IdP β†’ disabled in ZIA in <1 min
Pre-creationNo β€” user must log in once firstYes β€” onboard new joiners before day 1
Group syncEach login refreshes group membership from assertionReal-time as soon as IdP group changes
Best forSmall orgs, fast PoCProduction at scale β€” pretty much mandatory >500 users

SCIM is the production answer. JIT alone leaves dead accounts in your tenant when employees leave β€” both a security and licensing problem.

Quick check Β· SCIM vs JIT

You're at 800 users today and expect 5000 within 18 months. Which provisioning model do you set up now, and why?

Correct: c. SCIM is mandatory at scale (>500 users) β€” JIT alone leaves dead accounts when people leave (a security and licence-cost problem), CSV is manual and stale, and Kerberos is an auth method, not a provisioning protocol.
πŸ’‘Auth Frequency β€” the "I keep getting asked to log in" setting

Auth Frequency (Administration β†’ Authentication Settings β†’ Authentication Frequency) controls how often a user re-authenticates: Daily / Weekly / Monthly / Per Session. Default is Monthly. This is the #1 cause of "I keep getting asked to log in" help-desk tickets β€” usually because someone bumped it to Daily or Per Session "for security" without thinking about the UX hit. Tune it deliberately: most enterprises live happily on Monthly with TOTP-backed SAML.

ZIdentity β€” the unified identity layer

ZIdentity is Zscaler's unified identity layer that sits between your IdP and all Zscaler products (ZIA, ZPA, ZDX, ZCC). As of late 2025 it's the default for new tenants and mandatory for new features like ZDX 2.0 and Branch Connector. Old SAML-per-app config still works for legacy tenants β€” but new builds should adopt ZIdentity from day 1. Without it, each product separately consumes the IdP (three SAML apps in Azure AD, three audit trails). With it, the IdP integrates once and ZIdentity brokers identity to every Zscaler product.

Practical reasons to enable ZIdentity:

ZCC enrollment β€” how the agent knows who you are

You can't have identity-bound forwarding (Lesson 3) without ZCC knowing who its user is. ZCC enrolment is what binds the local agent to a specific IdP identity. Two enrolment modes:

Mode A β€” Manual / user-driven

User downloads ZCC, opens it, types their email. ZCC redirects to your IdP login (SAML), user signs in, ZIdentity issues a long-lived enrolment token tied to that user. Token survives reboots, expires per policy (default 180 days; configurable 7–365 days in Administration β†’ ZCC Portal β†’ Enrollment).

Mode B β€” Auto-enrol via Intune / Jamf / SCCM (the production way)

Push ZCC via MDM with the enrolment payload baked in:

Intune Β· ZCC silent install MSI parameters
msiexec /i Zscaler-windows-3.x.msi /qn ^
  CLOUDNAME=zscalerthree.net ^
  POLICYTOKEN=<tenant-policy-token-from-ZCC-portal> ^
  USERDOMAIN=techclick.in ^
  HIDETRAY=0 ^
  STRICTENFORCEMENT=1 ^
  CLEANUNINSTALLPASSWORD=<long-random-string> ^
  LOGINPASSWORD=<uninstall-guard-password>

LOGINPASSWORD=<password> β€” uninstall guard, required in modern ZCC, prevents end-user uninstall via Add/Remove Programs even if the user is local admin. Pair with CLEANUNINSTALLPASSWORD for the silent MSI uninstall path.

On first launch, ZCC reads the embedded policy token, contacts ZCC Portal, and silently exchanges the token for a SAML-backed enrolment using the logged-in Azure AD user. No user input. Zero help-desk tickets if the MDM payload is correct.

⚠Common Mistake β€” STRICTENFORCEMENT=0 in production

The MSI parameter STRICTENFORCEMENT controls whether ZCC blocks all traffic until enrolment completes. Engineers leave it at 0 ("permissive") during testing and forget to flip it to 1 for production. Result: a savvy user kills the ZCC process and gets unfiltered internet. Always ship with STRICTENFORCEMENT=1 in production β€” combined with CLEANUNINSTALLPASSWORD so the agent can't be removed without your password.

The mass-deployment SVG β€” fleet rollout in 3 lanes

ZCC Enrollment Lab SAML Loop Troubleshooting

Real-world scenario β€” SAML loop after Azure AD config change

Monday morning. The Azure AD team rotates the SAML signing certificate as part of their quarterly rotation. By 10:00 AM the help desk is on fire: "I keep getting redirected to Microsoft login and back to ZIA forever β€” infinite loop."

Diagnostic path:

  1. Open one of the broken sessions in DevTools β†’ Network. You see SAML POST β†’ 302 β†’ ZIA β†’ redirect to IdP β†’ POST β†’ 302 β†’ ZIA. Loop confirmed.
  2. Check the SAMLResponse from the IdP β€” copy from network tab, decode the Base64 payload at samltool.com.
  3. Notice the assertion is signed with a new cert (thumbprint changed). ZIA still has the old IdP cert in its metadata.
  4. Fix: ZIA Admin Portal β†’ Administration β†’ Authentication β†’ SAML β†’ upload fresh IdP Metadata XML β†’ Activate.
  5. Validate one test user β€” login succeeds first try.

The full fix is <5 minutes once you've seen this pattern once. The lesson: when your IdP rotates certs, the SP must re-import metadata, full stop. Set a Slack/email alert from your IdP team when they rotate, and re-upload metadata the same day. (Even better: use the Federation Metadata URL β€” see the Pro Tip earlier β€” and ZIA auto-rotates.)

Exact error strings to grep for: in the IdP logs you'll typically see NotOnOrAfter condition violated (assertion came in after its expiry window) or NotBefore condition not yet met (SP clock is behind the IdP). Both point to clock skew or cert/metadata drift. Search those exact phrases in your SIEM during a SAML incident.

βœ“Verify β€” confirm SAML auth is actually working

After IdP setup:

⚠Common Mistakes β€” auth + deployment

πŸ“Œ Quick reference (memorise before Module 5)

β–Ά QUICK LAB Β· ~15 MIN

Set up SAML SSO for your tenant:

  1. In Azure AD: create an Enterprise Application from Zscaler ZIA template. Copy the Federation Metadata URL.
  2. In ZIA Admin β†’ Authentication Settings β†’ SAML: paste the metadata URL (not XML upload). Save.
  3. Provision a test user, assign to the Zscaler app in Azure.
  4. From a clean browser, navigate to gateway.zscaler.net β†’ should redirect to Azure β†’ return signed in.
  5. Check ZCC Portal β†’ Enrollment β†’ see the user's enrolled device with cert valid 180 days.

πŸ”‘ Lock in the key terms β€” tap to flip

πŸ”
SAML SSO
tap to flip

Browser-based SSO where the IdP (Azure AD / Okta / Ping) signs an assertion and the SP (ZIA) validates it with the IdP's metadata cert. The production auth method for 99% of enterprises.

πŸ”„
SCIM
tap to flip

System for Cross-domain Identity Management β€” the IdP pushes user and group changes to ZIA in near-real-time. Pre-creates joiners and auto-disables leavers. Mandatory past ~500 users.

πŸͺͺ
ZIdentity
tap to flip

Zscaler's unified identity broker between your IdP and every Zscaler product (ZIA, ZPA, ZDX, ZCC). One SAML integration instead of 2–3. Default for new tenants, required for newer features.

πŸ’»
ZCC enrollment
tap to flip

Binds the local Client Connector to one IdP identity. User-driven (type email β†’ SAML login) or auto via MDM with an embedded policy token. Ship STRICTENFORCEMENT=1 + uninstall password in prod.

πŸ€– Ask the AI Tutor

Tap any question β€” instant, scoped to this lesson. The exact framing an interviewer wants to hear.

Pre-curated from Zscaler docs + interview Q&A, scoped to this lesson. For a live tenant issue, paste your decoded SAML response into chat.techclick.in.

πŸ“ Check your understanding

10 scenario questions β€” interview + ZDTA exam depth. Pick one answer per question. You need 70% (7 of 10) to mark this lesson complete on your profile.

Q1

You're rolling out Zscaler to a 3000-user enterprise that already uses Azure AD for everything else. Which authentication method?

Correct: (a). SAML against your existing IdP is the production answer for every enterprise rollout in 2026. (b) Hosted DB has no SSO and no group sync β€” only for labs. (c) Kerberos is on-prem-only and brittle behind proxies. (d) ADFS works but is legacy β€” Microsoft itself recommends moving to Azure AD direct SAML.
Q2

In a SAML SP-initiated flow, who actually signs the SAML assertion?

Correct: (c). The IdP holds the SAML signing private key and signs every assertion. The SP (ZIA) holds the IdP's public cert (via metadata import) and validates every received assertion's signature. (a) browsers never sign SAML β€” they just pass it. (b) the SP is the relying party, not the signer. (d) TLS protects transport; the SAML signature is application-layer integrity over the assertion content. They're independent layers.
Q3

After IdP cert rotation Monday morning, every user gets stuck in a SAML redirect loop (browser bounces ZIA ↔ Azure AD endlessly). Most likely root cause?

Correct: (b). Classic SAML cert rotation breakage. The IdP rotates its signing key; the SP (ZIA) still trusts the old key, so it rejects new assertions as "signature invalid" and bounces the user back to the IdP β€” infinite loop. The fix is always: re-upload IdP metadata to the SP. (a) Azure AD is up β€” auth works at the IdP side; the assertion is just rejected at the SP. (c) password resets don't cause this. (d) cookies don't carry the signing key.
Q4

You're at 800 users today, planning to hit 5000 in 18 months. Which provisioning model do you set up now?

Correct: (d). SCIM is the production answer at scale β€” leavers get disabled in ZIA the moment IdP disables them (security + license cost). (a) JIT alone leaves dead accounts. (b) CSV is manual and stale within a day. (c) Kerberos is a legacy on-prem auth method, not a provisioning protocol.
Q5

Your engineers report ZCC can be killed in Task Manager and uninstalled by anyone. Users disable it to bypass ZIA. Which MSI install parameter prevents this?

Correct: (b). Both flags together are the production lockdown β€” strict enforcement breaks internet if ZCC is killed (so users can't keep working without it), uninstall password blocks removal. Always ship both in MDM. (a) just sets the cloud. (c) just hides the tray icon. (d) is needed for enrolment, but doesn't prevent killing the agent.
Q6

You configured a group-based URL Filtering rule: "block social media for Marketing." Marketing users still access Facebook. What's the most likely root cause?

Correct: (a). Most common cause of "group rules silently failing" β€” the SAML AttributeStatement is sending group memberships under the wrong attribute name, so ZIA doesn't see the user in Marketing. Always verify in Insights β†’ Web that the user's recorded department/group matches what the IdP is supposed to send. (b)/(c)/(d) are real causes too but the IdP attribute mapping is the #1 reason group policy "doesn't work."
Q7

You want one SAML enterprise app in Azure AD to cover both ZIA and ZPA. How?

Correct: (c). Azure AD enterprise apps support multiple Reply URLs (ACS endpoints). One app, both ZIA + ZPA. ZIdentity is the even cleaner long-term move. (a) is false β€” apps support multiple SPs. (b) ZPA uses SAML, not pure OAuth. (d) duplicating apps creates two audit trails β€” exactly what you're avoiding.
Q8

A user's SAML auth fails with "Assertion expired" in ZIA logs, even though they just clicked login one second ago. Most likely cause?

Correct: (b). SAML assertions are time-bounded β€” NotBefore and NotOnOrAfter define when they're valid. If the SP's clock is wildly off (commonly because NTP failed on a self-managed component), even a freshly-issued assertion looks "already expired" or "not yet valid." Both sides on NTP, always. (a) network slowness doesn't make assertions expire. (c) password speed is bounded by the IdP, not the SP. (d) group missing causes a different error.
Q9

What does ZIdentity solve that plain per-product SAML doesn't?

Correct: (d). ZIdentity is the unified identity broker layer β€” its whole purpose is to centralize identity across ZIA, ZPA, ZDX, ZCC instead of each product separately integrating with the IdP. Operationally simpler, audit-friendly, and required for some 2025+ Zscaler features. (a) latency isn't the differentiator. (b) it doesn't reduce license cost. (c) crypto is the same β€” SAML is the same protocol.
Q10

A new joiner appears in Azure AD on Monday. With SCIM enabled, when do they appear in ZIA?

Correct: (c). That's SCIM's superpower β€” push-based, near-real-time provisioning. A user added to the right Azure AD group gets pushed to ZIA within the sync cycle, so they're known + group-mapped before their first login. (a) is JIT behaviour, not SCIM. (b) is the bad old way. (d) password resets don't trigger SCIM.
Lesson complete β€” saved to your profile.
Almost! Review the sections above and try again β€” you need 70% (7 of 10) to mark this lesson complete.

What's next β€” Lesson 5

Forwarding gets traffic in, auth identifies the user. Next: URL Filtering & Cloud App Control β€” the policies that actually shape what users can and can't do. URL categories, custom URLs, time quotas, sanctioned vs unsanctioned SaaS, and how ZIA evaluates rules in order.