首页 > 解决方案 > 如何以编程方式同意和调用图形 api“memberOf”端点

问题描述

我的要求是使用 Microsoft.Identity.Client 调用“https://graph.microsoft.com/v1.0/me/memberOf”并按照以下方式进行操作,但无法获取适当的响应。

GetToken.cs

     var result = await client.AcquireTokenOnBehalfOf(new string[] { "https://graph.microsoft.com/.default" }, userAssertion)
                        .WithSendX5C(true)
                        .ExecuteAsync().ConfigureAwait(false);
    return result.AccessToken;

在此处输入图像描述

问题:对于上面的图形 api 调用工作,我同意,因为它要求但如何使用 Microsoft.Identity.Client 同意?

标签: azure-active-directorymicrosoft-graph-apiaccess-tokenazure-ad-graph-apimicrosoft-identity-platform

解决方案


要以编程方式授予同意,您可以使用 Microsoft Graph API(例如,使用Microsoft Graph SDK)。

当您同意应用程序访问您的数据时,可能会发生三件事:

  1. 确保客户端应用程序存在服务主体(“客户端”是请求权限的应用程序)。如果不存在,则创建:创建 servicePrincipal
  2. 如果客户端需要委派权限,则授予它们。可以代表所有用户或代表特定用户授予委派权限:创建委派权限授予
  3. 如果客户端需要仅限应用程序的权限(也称为“应用程序角色”),则会授予它们。应用程序权限(应用程序角色)通过应用程序角色分配授予:将 appRoleAssignment 授予服务主体

警告:授予同意是一项非常特权的操作。对于能够执行上述步骤的应用程序,该应用程序本身将具有高度特权。


推荐阅读