【问题标题】:Give Files.ReadWrite.All permission for a specific group/team to an application将特定组/团队的 Files.ReadWrite.All 权限授予应用程序
【发布时间】:2022-01-07 15:29:50
【问题描述】:

背景/问题

我正在实现一个无头守护程序,它需要通过 Microsoft Graph API 访问某些 Sharepoint 资源(Files.ReadWrite.All 权限)。

挑战是让这个守护进程只访问特定组/团队的资源。

方法 1

显而易见的解决方案是使用here 所述的“客户端凭据流”进行机器对机器身份验证。

问题是我看不到将Files.ReadWrite.All 权限限制为特定组或团队的方法,这在我们的案例中是一个安全问题。

方法 2

我考虑的另一种方法是为我的守护程序创建一个单独的用户,该用户是我的守护程序需要访问的唯一组的成员。

但是使用特定用户登录意味着我被重定向到微软登录表单,这显然不适合无头守护进程。

问题

解决这个问题的最佳方法是什么?我在上面的方法中有什么遗漏吗?还是有更好的方法?

【问题讨论】:

  • 嗨罗伯特,一种方法是在所需组中创建一个用户帐户。创建一个新的“公共客户端”应用程序并启用组声明以流入要发布的访问令牌。将以下委派权限:Files.Read.All 添加到公共客户端应用程序,并授予管理员同意 - 这样就不需要交互。然后,您可以使用资源所有者密码授予工作流获取此用户的令牌,其范围设置为守护程序应用程序中的Files.Read.All
  • @ChintanRajvir 感谢您的解释!它有效:)

标签: sharepoint azure-active-directory microsoft-graph-api authorization


【解决方案1】:

• 您当然可以继续使用方法 1,因为它是通过 Microsoft Graph API 向 Sharepoint 资源授予守护程序应用程序所需权限的最正确方法。但是在这种方法中,您肯定可以将对该守护程序应用程序的访问权限限制为特定组,如下所示:-

a) 在企业应用程序中的 Azure AD 中注册 Sharepoint 在线应用程序。完成后,在 Azure AD 的“应用程序注册”中打开想要访问共享点资源的应用程序,并通过“API 权限”部分在线授予“Microsoft Graph API”和 Sharepoint 所需的权限,如下所示:-

b) 同意“Files.Readwrite.All”等权限和访问您的守护程序应用程序的其他权限后,通过单击“转到企业应用程序”链接在“企业应用程序”中打开您的守护程序应用程序以下: -

c) 然后,单击“管理”部分下的“用户和组”选项,然后添加您要授予此应用程序访问权限的组,如下所示。在此处添加所需的组后,该组中的成员将只能在线访问 Sharepoint 中的资源。

因此,通过这种方式,您可以通过 Microsoft graph 的守护程序应用程序分配对共享点资源的组访问权限。

【讨论】:

  • 这不是我所需要的。您的建议将应用程序的访问权限限制为特定组/用户。我需要限制应用程序可以做什么。我能够使用委派权限和资源所有者密码来解决它。
猜你喜欢
  • 1970-01-01
  • 2012-01-03
  • 1970-01-01
  • 2012-04-29
  • 2011-06-19
  • 2021-02-16
  • 1970-01-01
  • 2023-04-08
相关资源
最近更新 更多