CASE-2026-0402-H · 2026-04-02 Benign STANDARD ACCESS REVIEW SOC2 CC6.1 / CC6.3

13 connectors. 778 users.
6 anomalies. One audit-grade gap.

A quarterly access review across 13 identity connectors. The agent surfaced six findings: a test account, three dormancy candidates, and an unjustified-entitlement flag. None rose above Medium risk. The bigger finding was the process gap itself: two SOC2 CC6.3 heuristics could not be evaluated for 778 users because group and role data were unavailable from any connector. The agent surfaced the gap as an audit risk, not as a workaround.

Scope
Full organization. 13 connectors queried. 778 users counted via user_inventory SUMMARIZE. 6 users with full entitlement records (Auth0 only).
Findings
6 findings, 5 unique accounts. 1 Medium (external gmail in Auth0), 3 Low (dormancy candidates), 1 Low (missing baseline), 1 HIGH PROCESS RISK (Heuristics 3 & 4 not assessable).
Compliance read
SOC2 CC6.1 partial. 6 of 778 users with evidence. SOC2 CC6.3 not assessable. No group / role data from any connector. Remediation plan attached.
13
Connectors
9m
Workers time
778
Users in scope
$1.4-2.9K
Analyst cost saved
6
Findings
4
Coverage gaps
→ Workers ≠ alert triage.

This case never started with an alert. It started with a scheduled compliance obligation. The agent produced audit-shaped evidence, named accounts, named coverage gaps, named remediation actions.

→ Gaps are auditor-grade evidence.

“H3 and H4 not assessable for 778 users” is exactly what auditors need to see, stated explicitly, with a remediation plan, to discharge their CC6.3 review.

→ Federated identity, federated review.

13 connectors queried. One review. The same mesh that surfaces threat indicators surfaces entitlement drift. CISOs and auditors read different sections of the same artifact.

Six Heuristics, Six Coverage Stories

Process intent ≠ process evidence.

The agent applied six heuristics from the access-review skill against the 13 connected identity sources. The aggregate evaluation status, not the per-user findings, is what an auditor reads first:

HeuristicThresholdStatusCoverage note
H1 Dormant Accounts90 days no loginPARTIALNo last_login_time field on most connectors
H2 Orphaned AccountsNot in authoritative directoryPARTIALAuth0 has 6 users; Entra has 778. Domain mismatch prevents cross-reference
H3 Excessive PrivilegeAdmin on >3 systemsSKIPPEDNo group/role data on any connector. CC6.3 audit risk
H4 SoD ViolationsCommon conflict pairsSKIPPEDSame gap as H3. CC6.3 audit risk
H5 Stale Service Accounts60 days no activityPARTIALAuth0 only. 1 finding (external gmail account)
H6 Unjustified EntitlementNo baseline matchEVALUATEDNo baseline document discovered. 6 accounts flagged for certification

Two of six heuristics could not be applied at all. Both map to what SOC2 CC6.3 specifically requires evidence of: least privilege and separation of duties. The agent did not paper over this. It surfaced the skip as Finding 5: “Heuristics 3 & 4 Not Assessable, Process Gap [High Process Risk].”

Compliance Map

Two controls. Three statuses. One honest answer.

SOC2 CC6.1
Logical access restrictions, reviewed periodically
Partial. 6 of 778 users with individual evidence. 772 users not individually assessed, connector coverage gap. Review process demonstrated; evidence incomplete.
SOC2 CC6.3
Role-based access and least privilege
Not assessable. Entra groups not populated, JumpCloud offline, AWS auth empty. Heuristics 3 & 4 skipped. HIGH AUDIT RISK without remediation.
ISO 27001 A.9.2.5
Review of user access rights
Partial. Review conducted, anomalies documented, recommendations issued. Role and privilege review missing, same root cause as CC6.3.

The report’s auditor note is the load-bearing sentence: “This review establishes the access review process and demonstrates the intent to comply with CC6.1 and CC6.3. However, the absence of group / role data means least-privilege and SoD evidence cannot be provided at this time. A remediation plan is included in the Coverage Gap Report.”

The agent’s job here is not to invent the evidence the connectors didn’t return. It’s to produce audit-shaped documentation of what we asked, what we got, what we did not get, and what we’ll do about it.

Six Findings

Five accounts. Each with named action.

  • F1 [Medium]. External query.e2e+stage-***@gmail.com in corporate Auth0. Null UID, test-account naming. Action: Investigate; revoke if production.
  • F2 [Low / Insufficient Data]. aejay.g***@query.ai dormancy candidate (72 days no inventory record, approaching 90d threshold). Action: confirm active status in Auth0 admin console.
  • F3 [Low / Insufficient Data]. akash.s***@query.ai dormancy candidate (59 days). Action: investigate.
  • F4 [Low, Mitigated]. jonathan.r***@query.ai dormancy candidate (57 days). Mitigating evidence: Intune device “j.r***” active today. Action: low-priority, confirm device ownership.
  • F5 [HIGH Process Risk]. Scope: all 778 users. Group / role data unavailable across all connectors. Action: remediate connector configurations.
  • F6 [Low]. All 6 Auth0 users lack access-request baseline. Action: certify with manager approval, then establish baseline.

Five named accounts, six findings, every one with an explicit action verb (Investigate / Revoke / Confirm / Remediate / Certify). No “review and assess” hand-waves. No “consult an analyst” deferrals.

01

Auditor evidence is the schema for the output.

The report’s structure, heuristic x evaluation status, control x coverage assessment, maps directly to what an auditor reads. The agent doesn’t write a narrative and hope the auditor can derive the evidence. The structure is the evidence.

02

“Cannot assess” is a finding.

SOC2 CC6.3 not assessable on 778 users is the single most important sentence in the report. Hiding that fact would be the worst possible audit outcome. Surfacing it, with a remediation plan, priority, and named root cause, is what good looks like.

03

Per-user findings name accounts and actions.

Five accounts named. Six findings, each with an action verb. No “review further” placeholders. The auditor and the security team read the same document: the auditor for evidence, the team for the punch list.

04

Connector remediation is in scope.

The Coverage Gap Report names which connectors need fixing for the next quarter’s review to close CC6.3. The agent treats the platform as part of the review, not an externality.

Queries, sources & gaps

Key queries

Q1Organization scope, count distinct users across IdPs (30d)SCOPE
QUERY user_inventory.user.email_addr FROM ‘ATB – Entra ID’, ‘Staging Auth0 Logins’ SUMMARIZE COUNT(DISTINCT user.email_addr) AFTER 30d
778 distinct users (Entra count overflowed broad queries; SUMMARIZE produced the cardinality only).
Q4Per-user entitlement pull, Auth0 (6 users)ENTITLEMENT
QUERY user_inventory.user.email_addr, user_inventory.user.last_seen_time, user_inventory.user.account_type, user_inventory.user.is_system_account FROM ‘Staging Auth0 Logins’ AFTER 30d
6 records. The only connector that returned full per-user entitlement data within budget.
Q8H3 / H4 prerequisite, pull group membershipsDATA GAP
QUERY entity_management.actor.user.email_addr, entity_management.entity.group_name, entity_management.entity.role FROM ‘ATB – Entra ID’, ‘Q4Q – JC – DI’, ‘CT_MGMT_AUTH’ AFTER 30d
0 records across all three connectors. Heuristics 3 (Excessive Privilege) and 4 (SoD Violations) cannot be evaluated. CC6.3 audit risk surfaced.
Q12Test-account / external-domain scan in Auth0FINDING F1
QUERY user_inventory.user.email_addr, user_inventory.user.uid FROM ‘Staging Auth0 Logins’ WITH user_inventory.user.email_addr NOT ICONTAINS ‘@query.ai’
1 recordquery.e2e+stage-***@gmail.com. External domain in corporate IdP with null UID and test-account naming.
Q15Intune device cross-reference for F4 mitigationMITIGATING
QUERY inventory_info.device.name, inventory_info.device.last_seen_time FROM ‘ATB – Intune’ WITH inventory_info.device.name ICONTAINS ‘j.r***’ AFTER 7d
1 record — device active today (2026-04-02). Mitigating evidence on jonathan.r*** dormancy flag.

Showing 5 representative queries. Full audit trail across queries.md, entitlements.md, anomalies.md, coverage-gaps.md.

Sources queried · with status

SourceStatusNotes
identity.auth0 (Staging)HIT6 users with full entitlement detail
identity.entra (ATB)OVERFLOW778 distinct users via SUMMARIZE; individual records overflow broad queries
identity.intune (ATB)HIT6 devices; provided mitigating evidence for one dormancy flag
identity.jumpcloud (Events)GAP0 user_inventory records
identity.jumpcloud (DI)GAP0 authentication, 0 entity_management. Connector returns empty
identity.ct_mgmt_authGAP0 authentication records
entitlements (groups / roles)GAPNo connector returns entity_management with roles. Blocks H3 + H4

Coverage gaps · with priority

  • HIGH. Group / role data unavailable. Blocks Excessive Privilege + SoD heuristics. CC6.3 not assessable.
  • HIGH. JumpCloud Directory Insights returns 0 events across user_inventory, authentication, entity_management. Either configuration issue or pipeline failure.
  • MEDIUM. Last-login fields not populated on most connectors. Dormancy detection limited to inventory timestamps.
  • MEDIUM. Domain mismatch between JumpCloud user inventory (@query.ai) and auth data (@[tenant]). Cross-reference incomplete.