Azure AD应用程序注册设置,用于使用ASP.NET Web API获取组和用户

时间:2019-02-28 20:18:55

标签: azure-active-directory microsoft-graph microsoft-graph-sdks

当尝试使用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中?我对权限选项列表和管理员同意感到困惑。

1 个答案:

答案 0 :(得分:2)

首先,如果您还没看过,这是一本很好的读物。

Delegated permissions, Application permissions, and effective permissions - Microsoft Graph permissions reference.

在“委派”和“应用程序”选项卡中,要同时获取用户和组需要哪些权限?

通过查看相关文档,您可以了解每个api所需的权限。有了您在问题中分享的信息。

  1. 对于users/{1}/memberOf,它将是List memberOf

    enter image description here

  2. 用于获取所有组-List Groups

    enter image description here

如果仅仅是应用程序中的这两个调用,则Directory.Read.All将是所需的最低特权。如果有其他电话,请查看其文档。

因为这是API,并且我的UI分别部署在Azure中,所以我是否需要应用程序权限?

这将取决于您是否获取令牌来调用Microsoft Graph API。在代码上共享更多信息。.用于获取令牌的OAuth流,您可能会得到针对您的应用程序的更好建议。一般来说,

  • 如果您以用户身份获得令牌,则Delegated permissions(例如,如果您通过提示用户输入凭据并从流程角度来获取令牌(如果您使用授权代码或隐式授予流程,则为示例) )

  • 如果您将令牌作为应用程序获取,则Application permissions(例如,如果仅使用clientId,clientSecret / certificate使用Client Credentials流获取令牌)的示例

是否需要管理员同意?

这取决于您最终根据应用程序的需求最终决定什么权限。

  1. 您可以直接在Azure门户中看到它。.在为应用程序设置所需的权限时,每个权限旁边都有一个“是”或“否”以指示是否需要管理员同意。作为示例,请参见下面的屏幕截图。

    enter image description here

  2. Microsoft Graph权限参考..我共享的第一个链接记录了所有权限。这里的示例与您相关。

enter image description here