@@ -9,11 +9,14 @@ function Add-CIPPDelegatedPermission {
99 Set-Location (Get-Item $PSScriptRoot ).FullName
1010
1111 if ($ApplicationId -eq $ENV: ApplicationID -and $Tenantfilter -eq $env: TenantID ) {
12- return @ (' Cannot modify delgated permissions for CIPP-SAM on partner tenant' )
12+ # return @('Cannot modify delgated permissions for CIPP-SAM on partner tenant')
13+ $RequiredResourceAccess = ' CIPPDefaults'
1314 }
1415
1516 if ($RequiredResourceAccess -eq ' CIPPDefaults' ) {
1617 $RequiredResourceAccess = (Get-Content ' .\SAMManifest.json' | ConvertFrom-Json ).requiredResourceAccess
18+ $AdditionalPermissions = Get-Content ' .\AdditionalPermissions.json' | ConvertFrom-Json
19+ $RequiredResourceAccess = $RequiredResourceAccess + ($AdditionalPermissions | Where-Object { $RequiredResourceAccess.resourceAppId -notcontains $_.resourceAppId })
1720 }
1821 $Translator = Get-Content ' .\PermissionsTranslator.json' | ConvertFrom-Json
1922 $ServicePrincipalList = New-GraphGETRequest - uri " https://graph.microsoft.com/beta/servicePrincipals?`$ select=AppId,id,displayName&`$ top=999" - tenantid $Tenantfilter - skipTokenCache $true
@@ -22,10 +25,17 @@ function Add-CIPPDelegatedPermission {
2225
2326 $CurrentDelegatedScopes = New-GraphGETRequest - uri " https://graph.microsoft.com/beta/servicePrincipals/$ ( $ourSVCPrincipal.id ) /oauth2PermissionGrants" - skipTokenCache $true - tenantid $Tenantfilter
2427
25- foreach ($App in $requiredResourceAccess ) {
28+ foreach ($App in $RequiredResourceAccess ) {
2629 $svcPrincipalId = $ServicePrincipalList | Where-Object - Property AppId -EQ $App.resourceAppId
30+ $AdditionalScopes = ($AdditionalPermissions | Where-Object - Property resourceAppId -EQ $App.resourceAppId ).resourceAccess
2731 if (! $svcPrincipalId ) { continue }
28- $NewScope = ($Translator | Where-Object { $_.id -in $App.ResourceAccess.id }).value -join ' '
32+ if ($AdditionalScopes ) {
33+ $NewScope = (($Translator | Where-Object { $_.id -in $App.ResourceAccess.id }).value + $AdditionalScopes.id | Select-Object - Unique) -join ' '
34+ Write-Host " NEW SCOPE: $NewScope "
35+ } else {
36+ $NewScope = ($Translator | Where-Object { $_.id -in $App.ResourceAccess.id }).value -join ' '
37+ }
38+
2939 $OldScope = ($CurrentDelegatedScopes | Where-Object - Property Resourceid -EQ $svcPrincipalId.id )
3040
3141 if (! $OldScope ) {
0 commit comments