0

我想使用圖形API,我對SharePoint網站進行身份驗證作爲資源URL。這是因爲我正在使用C#CSOM API與SharePoint站點交談。Azure Active Directory圖Api - 用戶

當我嘗試使用相同的持票人令牌做出圖表api請求時,它表示未經授權。我也向移動應用程序提供了Graph API的權限。這是否意味着我的資源uri需要不同,如果是這樣的話,它應該是什麼樣子?我不確定如何找到它。

我基本上想給azure權限的註冊應用程序共享點和圖形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的實例?

我正在使用小提琴手如下令牌這個請求,但是這回來爲未經授權的401

GET https://graph.windows.net/22312560-20c8-0000-0000-0000000000/users/[email protected]/$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

這裏有你需要遵循,以確保您的應用程序按預期工作步驟:

  1. 確保您的應用註冊包含permissions to the Microsoft Graph以及進行API調用所需的範圍。

  2. 設置你的資源爲 「https://graph.microsoft.com/

  3. 找一個new access token此資源。
  4. 使用此新令牌調用Microsoft Graph API。您可以使用像this one這樣的JWT解碼器檢查一切是否正常。
+0

肖恩嗨,我有RESOURCEID設置爲https://graph.microsoft.com但是當我嘗試做一個小提琴手要求,生病更新我的問題與小提琴手例如令牌我仍然可以說沒有通過認證,什麼是我可以嘗試的簡單圖形請求? – Andrew

+1

注意,在Azure Active Directory的圖形API'的https:// graph.windows.net /'比微軟圖形API'的https不同:// graph.microsoft.com /'。如果您獲取特定資源的令牌,則該令牌僅在調用該資源時有效。這裏的錯誤看起來像是你正在用MS Graph API的令牌調用AAD Graph API。相反,嘗試使這一呼籲:'的https:// graph.microsoft.com/1.0/ME /' –

+1

完美,謝謝這是偉大的,這麼簡單的事,現在你們對我大加讚賞 – Andrew

相關問題