Verification & Testing: Control 2.22 - Inactivity Timeout Enforcement
Parent Control: 2.22 - Inactivity Timeout Enforcement
Last Updated: February 2026 Test Environment: Power Platform Admin Center, BAP Admin API, Dataverse Estimated Time: 1-2 hours
Prerequisites
- Control 2.22 implementation complete (portal walkthrough)
-
fsi_environmentpolicytable populated with zone assignments - Detect-InactivityTimeout-NonCompliance flow deployed
- Set-InactivityTimeout.ps1 script available (located at
scripts/governance/Set-InactivityTimeout.ps1in the FSI-AgentGov repository) - Test environments available (at least one per zone)
- Power Platform Admin or Environment Admin credentials (Environment Admin is limited to assigned environments)
- Authenticated Azure session via
Connect-AzAccount(required for PowerShell test cases TC-2.22-05 through TC-2.22-10)
Test Cases
TC-2.22-01: Compliant Environment Detection
Objective: Verify the compliance flow correctly identifies a properly configured environment.
Steps:
- Select a Zone 3 test environment
- Configure inactivity timeout to 30 minutes (within the 60-minute Zone 3 maximum)
- Ensure the environment has a corresponding
fsi_environmentpolicyrecord withfsi_requiredmaxduration= 60 - Run the Detect-InactivityTimeout-NonCompliance flow manually
- Check the
fsi_inactivitytimeoutcompliancetable for the scan result
Expected Result: Compliance record created with status = Compliant; timeout duration = 30; zone maximum = 60.
Evidence: Screenshot of compliance record showing Compliant status.
TC-2.22-02: Non-Compliant Environment — Timeout Exceeds Zone Maximum
Objective: Verify the compliance flow detects when timeout duration exceeds the zone maximum.
Steps:
- Select a Zone 2 test environment
- Configure inactivity timeout to 180 minutes (exceeds the 120-minute Zone 2 maximum)
- Ensure the environment has a corresponding
fsi_environmentpolicyrecord withfsi_requiredmaxduration= 120 - Run the Detect-InactivityTimeout-NonCompliance flow manually
- Check the
fsi_inactivitytimeoutcompliancetable for the scan result
Expected Result: Compliance record created with status = Non-Compliant; reason indicates duration exceeds zone maximum.
Evidence: Screenshot of compliance record showing Non-Compliant status with duration values.
TC-2.22-03: Non-Compliant Environment — Timeout Disabled
Objective: Verify the compliance flow detects when inactivity timeout is disabled on a governed environment.
Steps:
- Select a Zone 2 or Zone 3 test environment
- Disable inactivity timeout in PPAC → Settings → Privacy + Security
- Ensure the environment has a corresponding
fsi_environmentpolicyrecord - Run the Detect-InactivityTimeout-NonCompliance flow manually
- Check the
fsi_inactivitytimeoutcompliancetable for the scan result
Expected Result: Compliance record created with status = Non-Compliant; reason indicates timeout is disabled.
Evidence: Screenshot of compliance record showing Non-Compliant status with "timeout disabled" reason.
TC-2.22-04: Unknown Status — Missing Policy Record
Objective: Verify environments without a policy record receive Unknown compliance status.
Steps:
- Select a test environment that does NOT have a record in the
fsi_environmentpolicytable - Run the Detect-InactivityTimeout-NonCompliance flow manually
- Check the
fsi_inactivitytimeouterrorlogtable for a MissingPolicy entry - Query the
fsi_inactivitytimeoutcompliancetable, filtering by the test environment's EnvironmentName - Verify the compliance record shows compliance status = Unknown
- Verify the error log contains an entry with error type = MissingPolicy for this environment
Expected Result: Compliance record created with status = Unknown; error log entry created with error type = MissingPolicy.
Evidence: Screenshot of error log entry showing MissingPolicy error type.
TC-2.22-05: Remediation Script — WhatIf Preview
Objective: Verify the PowerShell remediation script correctly previews changes without modifying the environment.
Steps:
- Select a non-compliant test environment (e.g., Zone 3 with timeout at 120 minutes)
- Run
.\Set-InactivityTimeout.ps1 -EnvironmentName <name> -TimeoutDuration 60 -WhatIf -Verbose - Verify the Verbose output shows current and proposed values (the
-Verboseflag is required to see the comparison details) - Verify no actual change was made by re-checking PPAC settings or re-running the compliance flow
Expected Result: Script outputs preview with current and proposed values; no actual configuration change applied.
Evidence: Screenshot of WhatIf output showing current vs. proposed values.
TC-2.22-06: Remediation Script — Apply Fix
Objective: Verify the PowerShell remediation script successfully reconfigures an environment.
Steps:
- Select a non-compliant test environment (e.g., Zone 3 with timeout at 120 minutes)
- Run
.\Set-InactivityTimeout.ps1 -EnvironmentName <name> -TimeoutDuration 60 - Verify the script completes without errors
- Navigate to PPAC → Environment → Settings → Privacy + Security
- Confirm the timeout duration now shows 60 minutes
- Run the compliance flow manually to generate a new compliance record
- Verify the new compliance record shows status = Compliant
Expected Result: Environment timeout updated to 60 minutes; subsequent compliance scan shows Compliant.
Evidence: Screenshots of (a) successful script output, (b) PPAC showing updated timeout, (c) Compliant compliance record.
TC-2.22-07: Agent-Level Session Timeout Configuration (Zone 3)
Objective: Verify agent-level conversation session timeout is configured correctly for Zone 3 agents.
Steps:
- Select a Zone 3 agent that processes customer data or PII
- Navigate to Copilot Studio → select the agent → Settings → Advanced → Session timeout
- Verify the conversation session timeout is set to ≤60 minutes
- Verify the timeout setting is documented in the organization's agent inventory (Control 3.1)
Expected Result: Agent-level session timeout ≤60 minutes for Zone 3 agents; setting documented in agent inventory.
Evidence: Screenshot of agent session timeout configuration in Copilot Studio; agent inventory export showing the timeout setting.
TC-2.22-08: Agent-Level Timeout Evidence for Audit
Objective: Verify agent owners can produce evidence of agent-level timeout configuration during audit reviews.
Steps:
- Select a Zone 2 or Zone 3 agent
- Request the agent owner to produce configuration evidence (screenshot or API response showing session timeout setting)
- Verify the evidence includes: agent name, timeout duration, configuration date
- Verify the evidence matches the agent inventory record
Expected Result: Agent owner produces timestamped evidence showing agent-level session timeout configuration matching inventory records.
Evidence: Agent configuration screenshot or API response with timestamp.
TC-2.22-09: Remediation Script with Evidence Hash
Objective: Verify the PowerShell remediation script produces valid evidence with integrity hash.
Steps:
- Run
.\Set-InactivityTimeout.ps1 -EnvironmentName <name> -TimeoutDuration 60 -IncludeEvidence -OutputFormat JSON -OutputPath .\evidence\test-hash.json - Verify the output JSON file contains a non-null
Metadata.IntegrityHashfield - Run the evidence hash verification procedure from the PowerShell Setup playbook
- Verify the computed hash matches the recorded hash
Expected Result: Evidence file produced with SHA-256 integrity hash; verification procedure confirms hash match.
Evidence: JSON evidence file with integrity hash; verification script output showing "Evidence integrity verified".
TC-2.22-10: Bulk Remediation from CSV
Objective: Verify bulk remediation via CSV import works correctly across multiple environments.
Steps:
- Create a CSV file with columns
EnvironmentName,TimeoutDurationcontaining at least 2 test environments - Run
Import-Csv .\test-environments.csv | ForEach-Object { .\Set-InactivityTimeout.ps1 -EnvironmentName $_.EnvironmentName -TimeoutDuration ([int]$_.TimeoutDuration) -WhatIf } - Verify WhatIf output shows preview for each environment
- Run without -WhatIf to apply changes
- Run the compliance flow manually to verify all environments show Compliant
Expected Result: All environments remediated successfully; subsequent compliance scan confirms Compliant status for each.
Evidence: Bulk remediation output logs; compliance scan results.
TC-2.22-11: Session Expiration Configuration Verification
Objective: Verify session expiration (maximum session lifetime) is configured correctly for the environment's zone classification.
Steps:
- Select a Zone 3 test environment
- Navigate to PPAC → Environment → Settings → Privacy + Security → Session Expiration
- Verify Set custom session timeout is set to On
- Verify the Maximum Session Length is set to ≤720 minutes for Zone 3 (or ≤1440 minutes for Zone 2)
- Repeat for a Zone 2 environment and confirm the maximum session lifetime is ≤1440 minutes
Expected Result: Session expiration enabled with maximum lifetime within zone-specific limits (Zone 2: ≤1440 minutes, Zone 3: ≤720 minutes).
Evidence: Screenshot of PPAC Privacy + Security settings showing session expiration configuration for each governed environment.
Evidence Checklist
Collect the following evidence for audit documentation:
| # | Evidence Item | Format | Collected |
|---|---|---|---|
| 1 | PPAC Privacy + Security settings for each governed environment | Screenshot | [ ] |
| 2 | fsi_environmentpolicy table export showing zone assignments |
CSV/Screenshot | [ ] |
| 3 | Compliance scan results from fsi_inactivitytimeoutcompliance table |
CSV/Screenshot | [ ] |
| 4 | Flow run history showing successful daily execution | Screenshot | [ ] |
| 5 | Error log entries (if any) from fsi_inactivitytimeouterrorlog table |
CSV/Screenshot | [ ] |
| 6 | Remediation script execution logs with before/after values | Text/Screenshot | [ ] |
| 7 | Evidence hash verification output for remediation records | JSON + Console | [ ] |
| 8 | Agent-level session timeout configuration screenshots from Copilot Studio | Screenshot | [ ] |
| 9 | Agent inventory export showing agent-level timeout settings for Zone 2/3 agents | CSV/Screenshot | [ ] |
| 10 | Session expiration (maximum session lifetime) configuration for each governed environment | Screenshot | [ ] |
Attestation Template
Scope
This attestation covers key operational criteria. For comprehensive verification, confirm all 10 criteria from the Control 2.22 Verification Criteria section.
I, [Name], [Title], confirm that:
1. Control 2.22 (Inactivity Timeout Enforcement) has been configured for all
Zone 2 and Zone 3 Power Platform environments under governance.
2. All governed environments have inactivity timeout durations within
zone-specific maximum limits (Zone 2: ≤120 min, Zone 3: ≤60 min).
3. The Detect-InactivityTimeout-NonCompliance flow is operational and
producing daily compliance records in Dataverse.
4. Remediation procedures have been tested and documented.
5. Agent-level conversation session timeout settings are documented in
the agent inventory (Control 3.1) for all Zone 2 and Zone 3 agents.
6. Zone 3 agents processing customer data, PII, or PHI have conversation
session timeout configured at ≤60 minutes.
7. The compliance flow runs on a daily schedule and produces immutable
(append-only) compliance records in Dataverse.
8. No governed environments have remained in Unknown compliance status
for more than one review cycle without investigation.
9. All remediation actions are documented with before/after configuration
values and SHA-256 evidence hashes where applicable.
Date: _______________
Signature: _______________
Next Steps
- Portal Walkthrough — Initial PPAC configuration
- PowerShell Setup — Automated remediation
- Troubleshooting — Common issues and resolutions
Updated: February 2026 | Version: v1.3