当尝试使用ASP.NET Web API从Microsoft图中获取所有组时,我获得403禁止访问权限,这是我获取所有组的代码:
String jsonResponse = MicrosoftGraphHelper.MakeGetRequestForString (
String.Format("{0}users/{1}/memberOf",
MicrosoftGraphHelper.MicrosoftGraphV1BaseUri,
upn));
var userGroups = JsonConvert.Deser
在“委派”和“应用程序”选项卡中,同时获取用户和组需要哪些权限?我是否需要应用程序权限,因为这是一个API,并且我的UI分别部署在Azure中?我对权限选项列表和管理员同意感到困惑。
答案 0 :(得分:2)
首先,如果您还没看过,这是一本很好的读物。
在“委派”和“应用程序”选项卡中,要同时获取用户和组需要哪些权限?
通过查看相关文档,您可以了解每个api所需的权限。有了您在问题中分享的信息。
对于users/{1}/memberOf
,它将是List memberOf
用于获取所有组-List Groups
如果仅仅是应用程序中的这两个调用,则Directory.Read.All将是所需的最低特权。如果有其他电话,请查看其文档。
因为这是API,并且我的UI分别部署在Azure中,所以我是否需要应用程序权限?
这将取决于您是否获取令牌来调用Microsoft Graph API。在代码上共享更多信息。.用于获取令牌的OAuth流,您可能会得到针对您的应用程序的更好建议。一般来说,
如果您以用户身份获得令牌,则Delegated permissions
(例如,如果您通过提示用户输入凭据并从流程角度来获取令牌(如果您使用授权代码或隐式授予流程,则为示例) )
如果您将令牌作为应用程序获取,则Application permissions
(例如,如果仅使用clientId,clientSecret / certificate使用Client Credentials流获取令牌)的示例
是否需要管理员同意?
这取决于您最终根据应用程序的需求最终决定什么权限。
您可以直接在Azure门户中看到它。.在为应用程序设置所需的权限时,每个权限旁边都有一个“是”或“否”以指示是否需要管理员同意。作为示例,请参见下面的屏幕截图。
Microsoft Graph权限参考..我共享的第一个链接记录了所有权限。这里的示例与您相关。