Skip to content

Commit cb6f1d6

Browse files
authored
Merge pull request #601 from KelvinTegelaar/dev
[pull] dev from KelvinTegelaar:dev
2 parents e60bca5 + 8308833 commit cb6f1d6

File tree

12 files changed

+525
-354
lines changed

12 files changed

+525
-354
lines changed

CIPPTimers.json

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,30 +27,20 @@
2727
},
2828
{
2929
"Id": "44a40668-ed71-403c-8c26-b32e320086ad",
30-
"Command": "Start-AuditLogOrchestrator",
31-
"Description": "Orchestrator to download audit logs",
32-
"Cron": "0 */15 * * * *",
33-
"Priority": 2,
30+
"Command": "Start-AuditLogIngestion",
31+
"Description": "Ingest audit logs using Office 365 Management Activity API",
32+
"Cron": "0 */30 * * * *",
33+
"Priority": 4,
3434
"RunOnProcessor": true,
3535
"PreferredProcessor": "auditlog",
3636
"IsSystem": true
3737
},
3838
{
39-
"Id": "01cd512a-15c4-44a9-b8cb-1e5d879cfd2d",
39+
"Id": "a8f7c3e1-9d2b-4f6a-8e5c-1a3b7d9e4f2c",
4040
"Command": "Start-AuditLogProcessingOrchestrator",
41-
"Description": "Orchestrator to process audit logs",
41+
"Description": "Process cached audit logs and apply webhook rules",
4242
"Cron": "0 */15 * * * *",
43-
"Priority": 3,
44-
"RunOnProcessor": true,
45-
"PreferredProcessor": "auditlog",
46-
"IsSystem": true
47-
},
48-
{
49-
"Id": "03475c86-4314-4d7b-90f2-5a0639e3899b",
50-
"Command": "Start-AuditLogSearchCreation",
51-
"Description": "Timer to create audit log searches",
52-
"Cron": "0 */30 * * * *",
53-
"Priority": 4,
43+
"Priority": 2,
5444
"RunOnProcessor": true,
5545
"PreferredProcessor": "auditlog",
5646
"IsSystem": true

Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ function Test-CIPPAccessUserRole {
3535
} else {
3636
try {
3737
$uri = "https://graph.microsoft.com/beta/users/$($User.userDetails)/transitiveMemberOf"
38-
$Memberships = New-GraphGetRequest -uri $uri -NoAuthCheck $true | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.group' }
38+
$Memberships = New-GraphGetRequest -uri $uri -NoAuthCheck $true -AsApp $true | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.group' }
3939
if ($Memberships) {
4040
Write-Information "Found group memberships for $($User.userDetails)"
4141
} else {

Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogIngestion.ps1

Lines changed: 334 additions & 0 deletions
Large diffs are not rendered by default.

Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogSearchCreation.ps1

Lines changed: 0 additions & 72 deletions
This file was deleted.

Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogTenantDownload.ps1

Lines changed: 0 additions & 80 deletions
This file was deleted.

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPermissionRepair.ps1

Lines changed: 2 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -13,70 +13,9 @@ function Invoke-ExecPermissionRepair {
1313
param($Request, $TriggerMetadata)
1414

1515
try {
16-
$Table = Get-CippTable -tablename 'AppPermissions'
1716
$User = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Request.Headers.'x-ms-client-principal')) | ConvertFrom-Json
18-
19-
$CurrentPermissions = Get-CippSamPermissions
20-
if (($CurrentPermissions.MissingPermissions | Measure-Object).Count -gt 0) {
21-
Write-Information 'Missing permissions found'
22-
$MissingPermissions = $CurrentPermissions.MissingPermissions
23-
$Permissions = $CurrentPermissions.Permissions
24-
25-
$AppIds = @($Permissions.PSObject.Properties.Name + $MissingPermissions.PSObject.Properties.Name)
26-
27-
$NewPermissions = @{}
28-
foreach ($AppId in $AppIds) {
29-
if (!$AppId) { continue }
30-
$ApplicationPermissions = [system.collections.generic.list[object]]::new()
31-
$DelegatedPermissions = [system.collections.generic.list[object]]::new()
32-
33-
# App permissions
34-
foreach ($Permission in $Permissions.$AppId.applicationPermissions) {
35-
$ApplicationPermissions.Add($Permission)
36-
}
37-
if (($MissingPermissions.$AppId.applicationPermissions | Measure-Object).Count -gt 0) {
38-
foreach ($MissingPermission in $MissingPermissions.$AppId.applicationPermissions) {
39-
Write-Host "Adding missing permission: $MissingPermission"
40-
$ApplicationPermissions.Add($MissingPermission)
41-
}
42-
}
43-
44-
# Delegated permissions
45-
foreach ($Permission in $Permissions.$AppId.delegatedPermissions) {
46-
$DelegatedPermissions.Add($Permission)
47-
}
48-
if (($MissingPermissions.$AppId.delegatedPermissions | Measure-Object).Count -gt 0) {
49-
foreach ($MissingPermission in $MissingPermissions.$AppId.delegatedPermissions) {
50-
Write-Host "Adding missing permission: $MissingPermission"
51-
$DelegatedPermissions.Add($MissingPermission)
52-
}
53-
}
54-
# New permission object
55-
$NewPermissions.$AppId = @{
56-
applicationPermissions = @($ApplicationPermissions | Sort-Object -Property label)
57-
delegatedPermissions = @($DelegatedPermissions | Sort-Object -Property label)
58-
}
59-
}
60-
61-
62-
$Entity = @{
63-
'PartitionKey' = 'CIPP-SAM'
64-
'RowKey' = 'CIPP-SAM'
65-
'Permissions' = [string]([PSCustomObject]$NewPermissions | ConvertTo-Json -Depth 10 -Compress)
66-
'UpdatedBy' = $User.UserDetails ?? 'CIPP-API'
67-
}
68-
$Table = Get-CIPPTable -TableName 'AppPermissions'
69-
$null = Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force
70-
71-
$Body = @{
72-
'Results' = 'Permissions Updated'
73-
}
74-
Write-LogMessage -headers $Request.Headers -API 'ExecPermissionRepair' -message 'CIPP-SAM Permissions Updated' -Sev 'Info' -LogData $Permissions
75-
} else {
76-
$Body = @{
77-
'Results' = 'No permissions to update'
78-
}
79-
}
17+
$Result = Update-CippSamPermissions -UpdatedBy ($User.UserDetails ?? 'CIPP-API')
18+
$Body = @{'Results' = $Result }
8019
} catch {
8120
$Body = @{
8221
'Results' = "$($_.Exception.Message) - at line $($_.InvocationInfo.ScriptLineNumber)"

0 commit comments

Comments
 (0)