【发布时间】: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