Azure AD 应用程序仅适用于 SharePoint,无需授予广泛的租户权限

问题描述 投票:0回答:1

我想设置 Azure AD 仅应用程序来访问 SharePointOnline 中的某个网站。但是,当您设置 Azure AD App-Only 应用程序时,您似乎只能授予它跨所有站点网站集的访问权限,并且不能在范围上进行选择。有没有更好的方法可以在不授予广泛访问权限的情况下做到这一点?

我是否应该使用 SharePoint 应用程序应用程序而不是使用 xml 权限定义?我知道使用这种方法您可以将其限制为仅一个网站集。

azure sharepoint-online
1个回答
0
投票

注意:您可以使用

Sites.Selected
应用程序权限限制对应用程序上下文中的 SharePoint 网站集的访问,但不能限制对特定文件夹/文件或特定范围的访问。

创建 Azure AD 应用程序并授予 API 权限:

enter image description here

要仅授予对一个 SharePoint 网站的访问权限,我使用了以下 PowerShell 脚本:

$siteUrl = “https://xxx.sharepoint.com/sites/testruk”
$clientId = “ClientID” 
$certThumbprint = “Thumbprint” 
$tenant = “xxx.onmicrosoft.com”

Connect-PnPOnline -Url $siteUrl -Interactive
$writeperm = Grant-PnPAzureADAppSitePermission -Permissions “Write” -Site $siteUrl -AppId $clientId -DisplayName “PowerShell-SharepointOnline”
$PermissionId = Get-PnPAzureADAppSitePermission -AppIdentity $clientId
Set-PnPAzureADAppSitePermission -Site $siteurl -PermissionId $(($PermissionId).Id) -Permissions “FullControl”

enter image description here

当 SharePoint 网站使用应用程序时,我能够访问该网站:

Connect-PnPOnline -Url $siteUrl -ClientId $clientId -Thumbprint $certThumbprint -Tenant $tenant

enter image description here

当我尝试访问另一个 SharePoint 网站时,收到 403 forbidden 错误:

Connect-PnPOnline -Url $siteUrl -ClientId $clientId -Thumbprint $certThumbprint -Tenant $tenant

enter image description here

  • Microsoft Graph API 权限是租户范围内的,不能限制在特定范围内。
  • 如果 Azure AD 应用程序已被授予应用程序权限,则会向该应用程序授予完全级别的访问权限。
  • 因此,您可以仅限制SharePoint集合站点,但不能限制范围。

要确认上述内容,请检查以下 参考:

如何允许我的应用程序在没有用户的情况下仅访问特定驱动器或文件夹 - Microsoft 问答,作者:Vasil Michev

Graph API - 使用“Files.ReadWrite.All”和“Sites.ReadWrite.all”权限时限制 OneDrive/Sharepoint 访问 - Microsoft 问答,作者:CarlZhao-MSFT

© www.soinside.com 2019 - 2024. All rights reserved.