Test-MtGsaQuickAccessNoSignInFrequency
SYNOPSIS
Checks that no Conditional Access sign-in frequency control applies to the Global Secure Access Quick Access app.
SYNTAX
Test-MtGsaQuickAccessNoSignInFrequency [[-AllowedPolicies] <String[]>] [-ProgressAction <ActionPreference>]
[<CommonParameters>]
DESCRIPTION
When Private DNS is hosted on the Quick Access application, the Global Secure Access client's DNS queries authenticate against the Quick Access app and are evaluated by Conditional Access. A sign-in frequency session control then re-triggers on those frequent DNS lookups, causing unexpected and repeated authentication prompts. Microsoft therefore recommends not applying a sign-in frequency control to Quick Access.
This is an operational / user-experience hygiene check, not a security gap. An enabled sign-in frequency policy that targets Quick Access is reported as Fail, except when it falls into a category that does not drive routine DNS prompts, which is surfaced for Review instead:
- Role-only : scoped only to directory roles (e.g. admins), who typically do not use Private Access.
- Guest : scoped to guest / external users, who very rarely use Private Access.
- Risk-gated : has a user- or sign-in-risk condition, so the control only applies under elevated risk.
- Browser : limited to the 'browser' client app type; Private Access traffic is not browser-based.
Reviewed, accepted exceptions can be allow-listed by policy id or display name via the 'GsaQuickAccessSignInFrequencyAllowedPolicies' global setting (maester-config.json); those are reported as Accepted and never fail.
Remediation for a Fail is to exclude the Quick Access app from the sign-in frequency policy - not to remove the control organization-wide.
EXAMPLES
EXAMPLE 1
Test-MtGsaQuickAccessNoSignInFrequency
Returns $true if no sign-in frequency policy applies to Quick Access outside the allowed categories.
PARAMETERS
-AllowedPolicies
Conditional Access policies (by id or displayName) that are reviewed, accepted exceptions and should never fail this check. Defaults to the 'GsaQuickAccessSignInFrequencyAllowedPolicies' GlobalSetting in maester-config.json.
Type: String[]
Parameter Sets: (All)
Aliases:
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ProgressAction
Determines how PowerShell responds to progress updates generated by a script, cmdlet, or provider, such as the progress bars generated by Write-Progress.
Type: ActionPreference
Parameter Sets: (All)
Aliases: proga
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.
INPUTS
OUTPUTS
System.Boolean
NOTES
RELATED LINKS
https://maester.dev/docs/commands/Test-MtGsaQuickAccessNoSignInFrequency