Private/Entra/Core/Get-EntraApplicationData.ps1
|
# PSGuerrilla - Jim Tyler, Microsoft MVP - CC BY 4.0 # https://github.com/jimrtyler/PSGuerrilla | https://creativecommons.org/licenses/by/4.0/ # AI/LLM use: see AI-USAGE.md for required attribution function Get-EntraApplicationData { [CmdletBinding()] param( [Parameter(Mandatory)] [string]$AccessToken, [switch]$Quiet ) $data = @{ AppRegistrations = @() ServicePrincipals = @() ConsentGrants = @() Errors = @{} } # ── App Registrations ───────────────────────────────────────────────── if (-not $Quiet) { Write-ProgressLine -Phase INFILTRATE -Message 'Collecting app registrations' } try { $data.AppRegistrations = @(Invoke-GraphApi -AccessToken $AccessToken ` -Uri '/applications' ` -QueryParameters @{ '$select' = 'id,appId,displayName,signInAudience,createdDateTime,passwordCredentials,keyCredentials,requiredResourceAccess,isFallbackPublicClient,web,spa,publicClient' } ` -Paginate -Quiet:$Quiet) } catch { $data.Errors['AppRegistrations'] = $_.Exception.Message } # ── Service Principals ──────────────────────────────────────────────── if (-not $Quiet) { Write-ProgressLine -Phase INFILTRATE -Message 'Collecting service principals' } try { $data.ServicePrincipals = @(Invoke-GraphApi -AccessToken $AccessToken ` -Uri '/servicePrincipals' ` -QueryParameters @{ '$select' = 'id,appId,displayName,servicePrincipalType,appOwnerOrganizationId,accountEnabled,passwordCredentials,keyCredentials,signInAudience' } ` -Paginate -Quiet:$Quiet) } catch { $data.Errors['ServicePrincipals'] = $_.Exception.Message } # ── OAuth2 Permission Grants (Consent) ──────────────────────────────── if (-not $Quiet) { Write-ProgressLine -Phase INFILTRATE -Message 'Collecting OAuth2 consent grants' } try { $data.ConsentGrants = @(Invoke-GraphApi -AccessToken $AccessToken ` -Uri '/oauth2PermissionGrants' ` -Paginate -Quiet:$Quiet) } catch { $data.Errors['ConsentGrants'] = $_.Exception.Message } if (-not $Quiet) { Write-ProgressLine -Phase INFILTRATE -Message "Collected $($data.AppRegistrations.Count) apps, $($data.ServicePrincipals.Count) SPs, $($data.ConsentGrants.Count) consent grants" } return $data } |