Azure Active Directory图表Api - 用户

时间:2017-08-01 13:14:04

标签: sharepoint azure-active-directory csom azure-ad-graph-api bearer-token

我正在尝试使用Graph API,我正在针对SharePoint网站进行身份验证作为资源URL。这是因为我使用C#CSOM api与sharepoint站点进行通信。

当我尝试使用相同的承载令牌制作图表api请求时,它表示未经授权。我也给了移动应用程序Graph API的权限。这是否意味着我的资源uri需要不同,如果是这样,它应该是什么,因为它不清楚?我不确定如何找到它。

我基本上想要使用azure权限将注册的应用程序提供给sharepoint和graph api。当我获得令牌时,我希望能够将此用于两种类型的请求

var client = new HttpClient();

client.DefaultRequestHeaders.Add("Accept", "application/json");
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "TOKEN_FROM_AUTHENTCIATION");

var result = client.GetAsync("https://graph.microsoft.com/v1.0/me/messages?$select=subject,from,receivedDateTime&$top=25&$orderby=receivedDateTime%20DESC").Result;

我的连接详情与以下内容类似:

<add key="ida:AADInstance" value="https://login.microsoftonline.com/{0}" />
<add key="ida:Tenant" value="mytenant.onmicrosoft.com" />
<add key="ida:ApplicationId" value="A GUID" />
<add key="ida:RedirectUri" value="http://AnyUri/" />
<add key="ida.ResourceUrl" value="https://mytenant.sharepoint.com/" />

我认为我的 ResourceUrl 需要是一个图形api但不能理解它应该是什么,我是否必须为我的域创建图形api的实例?

我正在使用fiddler使用令牌发出此请求,如下所示,但这又作为未经授权的401回复

GET https://graph.windows.net/22312560-20c8-0000-0000-0000000000/users/user@microsoft.com/$links/manager?api-version=1.6

Content-Type: text/json
Accept: application/json
Host: graph.windows.net
Content-Length: 0
Authorization: Bearer <THE_TOKEN>

1 个答案:

答案 0 :(得分:1)

以下是您需要遵循的步骤,以确保您的应用按预期工作:

  1. 确保您的应用注册时间permissions to the Microsoft Graph具有进行API调用所需的范围。

  2. 将您的资源设置为&#34; https://graph.microsoft.com/&#34;

  3. 获取此资源的new access token
  4. 使用此新令牌调用Microsoft Graph API。您可以使用this one等JWT解码器检查一切是否正常。
相关问题