Skip to content

[BUG] Grant-PnPAzureADAppSitePermission error #4980

Description

@xeayabe

Reporting an Issue or Missing Feature

Please confirm what it is that your reporting

Expected behavior

I created an app (App1) with SiteSelected.All, aiming to grant access to a specific SharePoint site. I connected to my PnP azure (App 2), which has these permissions:

Image

Then, I used it to run this command:
Grant-PnPAzureADAppSitePermission -AppId $App1-DisplayName "NameOdMyApp" -Site $siteUrl -Permissions Write

However, I received this error:
{"error":{"code":"accessDenied","message":"Access denied","innerError":{"date":"2025-06-24T16:12:01","request-id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx","client-request-id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx"}}}

Either I use App1 or App2, I can read and write files, but only with PnP commands like Get-PnPFile, Add-PnPFile, or Get-PnPFolderItem. However, I’m unable to perform any actions when using APIs.

Actual behavior

I also run in graph explorer (as I read online) the following but it didn't work:
(https://graph.microsoft.com/v1.0/sites/tenantname.sharepoint.com,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx/permissions)

{
"roles": ["write"],
"grantedToIdentities": [
{
"application": {
"id": "x-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"displayName": "MY_APP"
}
}
]
}

And it successfully created, but i am not able to make it work:

Image

Steps to reproduce behavior

$tenant = "name"
$secPassword = "secret" | ConvertTo-SecureString -AsPlainText -Force
$certname = "certname"
$AdminCenterURL = "https://tenant-admin.sharepoint.com"

$clientId = Get-Content "path\ClientID.txt"
$certFilename = "path\$certname.pfx"
$siteUrl = "https://$tenant.sharepoint.com/sites/sitename"
Connect-PnPOnline -Url $siteUrl -ClientId $clientId -Tenant "$tenant.onmicrosoft.com" -CertificatePath $certFilename -CertificatePassword $secPassword

$appId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"

Grant-PnPAzureADAppSitePermission -AppId $appId -DisplayName "AppName" -Site $siteUrl -Permissions Write

What is the version of the Cmdlet module you are running?

(you can retrieve this by executing Get-Module -Name "PnP.PowerShell" -ListAvailable)

Image

Which operating system/environment are you running PnP PowerShell on?

  • Windows

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions