public/Get-MtRole.ps1
|
<# .Synopsis Returns all the role definitions in the tenant. .Description Returns all the role definitions in the tenant. .Parameter CisaHighlyPrivilegedRoles Filters the returned roles to only those described by CISA as highly privieleged. .Example Get-MtRole .LINK https://maester.dev/docs/commands/Get-MtRole #> function Get-MtRole { [CmdletBinding()] param( [switch]$CisaHighlyPrivilegedRoles ) #https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/aad.md#highly-privileged-roles $highlyPrivilegedRoles = @( "62e90394-69f5-4237-9190-012177145e10", "fe930be7-5e62-47db-91af-98c3a49a38b1", "29232cdf-9323-42fd-ade2-1d097af3e4de", "f28a1f50-f6e7-4571-818b-6a12f2af6b6c", "9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3", "e8611ab8-c189-46e8-94e1-60213ab1f814", "158c047a-c907-4556-b7ef-446551a6b5f7", "8ac3fc64-6eca-42ea-9e69-59f4c7b60eb2" ) Write-Verbose -Message "Getting directory role definitions." $roles = Invoke-MtGraphRequest -RelativeUri 'roleManagement/directory/roleDefinitions' -ApiVersion v1.0 if ($CisaHighlyPrivilegedRoles){ return $roles | Where-Object {` $_.id -in $highlyPrivilegedRoles } } return $roles } |