Skip to content

Commit 9d58b49

Browse files
committed
update oauth consent low sec to report conflicts
1 parent 4d6dfdb commit 9d58b49

File tree

1 file changed

+42
-36
lines changed

1 file changed

+42
-36
lines changed

Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsentLowSec.ps1

Lines changed: 42 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -36,55 +36,61 @@ function Invoke-CIPPStandardOauthConsentLowSec {
3636
$missingPermissions = $requiredPermissions | Where-Object { $PermissionState.permissionName -notcontains $_ }
3737

3838
if ($Settings.remediate -eq $true) {
39-
if ($State.permissionGrantPolicyIdsAssignedToDefaultUserRole -in @('managePermissionGrantsForSelf.microsoft-user-default-low')) {
40-
Write-LogMessage -API 'Standards' -tenant $tenant -message 'Application Consent Mode(microsoft-user-default-low) is already enabled.' -sev Info
41-
} else {
42-
try {
43-
$GraphParam = @{
44-
tenantid = $tenant
45-
Uri = 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy'
46-
Type = 'PATCH'
47-
Body = @{
48-
permissionGrantPolicyIdsAssignedToDefaultUserRole = @('managePermissionGrantsForSelf.microsoft-user-default-low')
49-
} | ConvertTo-Json
50-
ContentType = 'application/json'
51-
}
52-
$null = New-GraphPostRequest @GraphParam
53-
Write-LogMessage -API 'Standards' -tenant $tenant -message 'Application Consent Mode(microsoft-user-default-low) has been enabled.' -sev Info
54-
} catch {
55-
$ErrorMessage = Get-NormalizedError -Message $_.Exception.Message
56-
Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to apply Application Consent Mode (microsoft-user-default-low) Error: $ErrorMessage" -sev Error
57-
}
58-
}
59-
60-
if ($missingPermissions.Count -eq 0) {
61-
Write-LogMessage -API 'Standards' -tenant $tenant -message 'All permissions for Application Consent already assigned.' -sev Info
62-
} else {
63-
try {
64-
$missingPermissions | ForEach-Object {
39+
if (!$State.permissionGrantPolicyIdsAssignedToDefaultUserRole -contains 'ManagePermissionGrantsForSelf.cipp-consent-policy') {
40+
if ($State.permissionGrantPolicyIdsAssignedToDefaultUserRole -in @('managePermissionGrantsForSelf.microsoft-user-default-low')) {
41+
Write-LogMessage -API 'Standards' -tenant $tenant -message 'Application Consent Mode(microsoft-user-default-low) is already enabled.' -sev Info
42+
} else {
43+
try {
6544
$GraphParam = @{
6645
tenantid = $tenant
67-
Uri = "https://graph.microsoft.com/beta/servicePrincipals(appId='00000003-0000-0000-c000-000000000000')/delegatedPermissionClassifications"
68-
Type = 'POST'
46+
Uri = 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy'
47+
Type = 'PATCH'
6948
Body = @{
70-
permissionName = $_
71-
classification = 'low'
49+
permissionGrantPolicyIdsAssignedToDefaultUserRole = @('managePermissionGrantsForSelf.microsoft-user-default-low')
7250
} | ConvertTo-Json
7351
ContentType = 'application/json'
7452
}
7553
$null = New-GraphPostRequest @GraphParam
76-
Write-LogMessage -API 'Standards' -tenant $tenant -message "Permission $_ has been added to low Application Consent" -sev Info
54+
Write-LogMessage -API 'Standards' -tenant $tenant -message 'Application Consent Mode(microsoft-user-default-low) has been enabled.' -sev Info
55+
} catch {
56+
$ErrorMessage = Get-NormalizedError -Message $_.Exception.Message
57+
Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to apply Application Consent Mode (microsoft-user-default-low) Error: $ErrorMessage" -sev Error
58+
}
59+
}
60+
61+
if ($missingPermissions.Count -eq 0) {
62+
Write-LogMessage -API 'Standards' -tenant $tenant -message 'All permissions for Application Consent already assigned.' -sev Info
63+
} else {
64+
try {
65+
$missingPermissions | ForEach-Object {
66+
$GraphParam = @{
67+
tenantid = $tenant
68+
Uri = "https://graph.microsoft.com/beta/servicePrincipals(appId='00000003-0000-0000-c000-000000000000')/delegatedPermissionClassifications"
69+
Type = 'POST'
70+
Body = @{
71+
permissionName = $_
72+
classification = 'low'
73+
} | ConvertTo-Json
74+
ContentType = 'application/json'
75+
}
76+
$null = New-GraphPostRequest @GraphParam
77+
Write-LogMessage -API 'Standards' -tenant $tenant -message "Permission $_ has been added to low Application Consent" -sev Info
78+
}
79+
} catch {
80+
$ErrorMessage = Get-NormalizedError -Message $_.Exception.Message
81+
Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to apply low consent permissions Error: $ErrorMessage" -sev Error
7782
}
78-
} catch {
79-
$ErrorMessage = Get-NormalizedError -Message $_.Exception.Message
80-
Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to apply low consent permissions Error: $ErrorMessage" -sev Error
8183
}
8284
}
8385
}
8486

8587
if ($Settings.alert -eq $true) {
8688
if ($State.permissionGrantPolicyIdsAssignedToDefaultUserRole -notin @('managePermissionGrantsForSelf.microsoft-user-default-low')) {
87-
Write-StandardsAlert -message 'Application Consent Mode(microsoft-user-default-low) is not enabled' -object $State -tenant $tenant -standardName 'OauthConsentLowSec' -standardId $Settings.standardId
89+
if ($State.permissionGrantPolicyIdsAssignedToDefaultUserRole -eq 'managePermissionGrantsForSelf.cipp-consent-policy') {
90+
Write-StandardsAlert -message 'There is a conflicting OAuth Consent policy standard enabled for this tenant.' -object $State -tenant $tenant -standardName 'OauthConsentLowSec' -standardId $Settings.standardId
91+
} else {
92+
Write-StandardsAlert -message 'Application Consent Mode(microsoft-user-default-low) is not enabled' -object $State -tenant $tenant -standardName 'OauthConsentLowSec' -standardId $Settings.standardId
93+
}
8894
Write-LogMessage -API 'Standards' -tenant $tenant -message 'Application Consent Mode(microsoft-user-default-low) is not enabled.' -sev Info
8995
} else {
9096
Write-LogMessage -API 'Standards' -tenant $tenant -message 'Application Consent Mode(microsoft-user-default-low) is enabled.' -sev Info
@@ -95,7 +101,7 @@ function Invoke-CIPPStandardOauthConsentLowSec {
95101
if ($State.permissionGrantPolicyIdsAssignedToDefaultUserRole -notin @('managePermissionGrantsForSelf.microsoft-user-default-low')) {
96102
$State.permissionGrantPolicyIdsAssignedToDefaultUserRole = $false
97103
$ValueField = @{
98-
authorizationPolicy = $State
104+
authorizationPolicy = $State.permissionGrantPolicyIdsAssignedToDefaultUserRole
99105
permissionClassifications = $PermissionState
100106
}
101107
} else {

0 commit comments

Comments
 (0)