Skip to content

Commit 045a463

Browse files
committed
Catch errors on domain enumeration
1 parent f80fe5f commit 045a463

2 files changed

Lines changed: 27 additions & 10 deletions

File tree

modules/export_Summary.psm1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ return @"
225225
}
226226
$escapedTenantName = [System.Uri]::EscapeDataString($CurrentTenant.DisplayName)
227227
$userReportBase = "Users_$($StartTimestamp)_$($escapedTenantName).html"
228-
228+
229229
$displayDomains = @(
230230
@($Domains | Where-Object { $_.IsDefault }) +
231231
@($Domains | Where-Object { -not $_.IsDefault })

modules/shared_Functions.psm1

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4090,22 +4090,39 @@ function Get-TenantDomains {
40904090
$QueryParameters = @{
40914091
'$select' = "id,authenticationType,isAdminManaged,isDefault,isVerified,supportedServices"
40924092
}
4093-
$DomainsRaw = @(Send-ApiRequest -Method GET -Uri "https://graph.microsoft.com/beta/domains" -AccessToken $GLOBALMsGraphAccessToken.access_token -QueryParameters $QueryParameters -UserAgent $($GlobalAuditSummary.UserAgent.Name))
4093+
try {
4094+
$DomainsRaw = @(Send-ApiRequest -Method GET -Uri "https://graph.microsoft.com/beta/domains" -AccessToken $GLOBALMsGraphAccessToken.access_token -QueryParameters $QueryParameters -UserAgent $($GlobalAuditSummary.UserAgent.Name))
4095+
} catch {
4096+
Write-Host "[!] Could not retrieve tenant domains. Domain-related summary data will be incomplete."
4097+
Write-Log -Level Verbose -Message "Could not retrieve tenant domains: $($_.Exception.Message)"
4098+
$GlobalAuditSummary.Domains.Count = 0
4099+
$GlobalAuditSummary.Domains.Federated = 0
4100+
$GlobalAuditSummary.Domains.Verified = 0
4101+
$GlobalAuditSummary.Domains.Default = 0
4102+
$GlobalAuditSummary.Domains.AdminManaged = 0
4103+
return @()
4104+
}
40944105
Write-Log -Level Debug -Message "Retrieved $($DomainsRaw.Count) domains"
40954106

4107+
$federationLookupFailed = $false
40964108
$Domains = foreach ($domain in $DomainsRaw) {
40974109
$federatedIdpMfaBehavior = $null
40984110
if ($domain.authenticationType -eq "Federated") {
40994111
Write-Log -Level Debug -Message "Fetching federation configuration for domain: $($domain.id)"
4100-
$FedConfig = @(Send-ApiRequest -Method GET -Uri "https://graph.microsoft.com/beta/domains/$($domain.id)/federationConfiguration" -AccessToken $GLOBALMsGraphAccessToken.access_token -QueryParameters @{ '$select' = 'federatedIdpMfaBehavior' } -UserAgent $($GlobalAuditSummary.UserAgent.Name))
4101-
if ($FedConfig.Count -gt 0) {
4102-
if ($FedConfig.Count -gt 1) {
4103-
Write-Log -Level Debug -Message "Multiple federation configurations found for domain: $($domain.id). Using the first entry."
4112+
try {
4113+
$FedConfig = @(Send-ApiRequest -Method GET -Uri "https://graph.microsoft.com/beta/domains/$($domain.id)/federationConfiguration" -AccessToken $GLOBALMsGraphAccessToken.access_token -QueryParameters @{ '$select' = 'federatedIdpMfaBehavior' } -UserAgent $($GlobalAuditSummary.UserAgent.Name))
4114+
if ($FedConfig.Count -gt 0) {
4115+
if ($FedConfig.Count -gt 1) {
4116+
Write-Log -Level Debug -Message "Multiple federation configurations found for domain: $($domain.id). Using the first entry."
4117+
}
4118+
$federatedIdpMfaBehavior = [string]$FedConfig[0].federatedIdpMfaBehavior
4119+
Write-Log -Level Debug -Message "federatedIdpMfaBehavior for $($domain.id): $federatedIdpMfaBehavior"
4120+
} else {
4121+
Write-Log -Level Debug -Message "No federation configuration found for domain: $($domain.id)"
41044122
}
4105-
$federatedIdpMfaBehavior = [string]$FedConfig[0].federatedIdpMfaBehavior
4106-
Write-Log -Level Debug -Message "federatedIdpMfaBehavior for $($domain.id): $federatedIdpMfaBehavior"
4107-
} else {
4108-
Write-Log -Level Debug -Message "No federation configuration found for domain: $($domain.id)"
4123+
} catch {
4124+
$federationLookupFailed = $true
4125+
Write-Log -Level Verbose -Message "Could not retrieve federation configuration for domain $($domain.id): $($_.Exception.Message)"
41094126
}
41104127
}
41114128
[PSCustomObject]@{

0 commit comments

Comments
 (0)