Skip to content

Commit 39248bf

Browse files
committed
feat: add application roles to permission check
1 parent cb246ac commit 39248bf

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

Modules/CIPPCore/Public/GraphHelper/Read-JwtAccessDetails.ps1

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ function Read-JwtAccessDetails {
1818
IPAddress = ''
1919
Name = ''
2020
Scope = ''
21+
Roles = ''
2122
TenantId = ''
2223
UserPrincipalName = ''
2324
}
@@ -43,8 +44,9 @@ function Read-JwtAccessDetails {
4344
$TokenDetails.IPAddress = $TokenObj.ipaddr
4445
$TokenDetails.Name = $TokenObj.name
4546
$TokenDetails.Scope = $TokenObj.scp -split ' '
47+
$TokenDetails.Roles = $TokenObj.roles
4648
$TokenDetails.TenantId = $TokenObj.tid
4749
$TokenDetails.UserPrincipalName = $TokenObj.upn
4850

4951
return $TokenDetails
50-
}
52+
}

Modules/CIPPCore/Public/Test-CIPPAccessPermissions.ps1

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,9 @@ function Test-CIPPAccessPermissions {
128128
$Messages.Add('You have all the required permissions.') | Out-Null
129129
}
130130

131+
$ApplicationToken = Get-GraphToken -returnRefresh $true -SkipCache $true -AsApp $true
132+
$ApplicationTokenDetails = Read-JwtAccessDetails -Token $ApplicationToken.access_token -erroraction SilentlyContinue | Select-Object
133+
131134
$LastUpdate = [DateTime]::SpecifyKind($GraphPermissions.Timestamp.DateTime, [DateTimeKind]::Utc)
132135
$CpvTable = Get-CippTable -tablename 'cpvtenants'
133136
$CpvRefresh = Get-CippAzDataTableEntity @CpvTable -Filter "PartitionKey eq 'Tenant'"
@@ -162,13 +165,14 @@ function Test-CIPPAccessPermissions {
162165
}
163166

164167
$AccessCheck = [PSCustomObject]@{
165-
AccessTokenDetails = $AccessTokenDetails
166-
Messages = @($Messages)
167-
ErrorMessages = @($ErrorMessages)
168-
MissingPermissions = @($MissingPermissions)
169-
CPVRefreshList = @($CPVRefreshList)
170-
Links = @($Links)
171-
Success = $Success
168+
AccessTokenDetails = $AccessTokenDetails
169+
ApplicationTokenDetails = $ApplicationTokenDetails
170+
Messages = @($Messages)
171+
ErrorMessages = @($ErrorMessages)
172+
MissingPermissions = @($MissingPermissions)
173+
CPVRefreshList = @($CPVRefreshList)
174+
Links = @($Links)
175+
Success = $Success
172176
}
173177

174178
$Table = Get-CIPPTable -TableName AccessChecks

0 commit comments

Comments
 (0)