2017-09-25 119 views
1

我有一個Azure AD B2C。由於Azure Active Directory已遷移到新門戶,因此使用Azure Graph API讀取和寫入租戶用戶數據時遇到問題。之前,我有一個從舊門戶創建的應用程序,現在無法使用。Azure圖形API:使用Azure AD禁止的錯誤403 B2C

所以,我創建的新門戶的新的應用程序,如下:

  • 打開「Azure的活動目錄」選項卡
  • 打開「應用程序註冊」
  • 單擊「新建應用程序註冊」
  • 「屬性」 選項卡中有:

  • 「回覆的URL」 選項卡中有:

    • https://開頭圖。 windows.net/winbizdev.onmicrosoft.com
  • 「所需的權限」 選項卡中有:

    • 的Windows Azure Active Directory的 - >檢查不需要管理員
  • 「鍵」 選項卡中有3個要素:

    • CLIENT_SECRE t內永不過期

現在這裏是我的C#代碼從Azure的圖形API訪問用戶數據:

 _authContext = new AuthenticationContext("https://login.microsoftonline.com/myTenant.onmicrosoft.com"); 
     _credential = new ClientCredential("<Application Client Guid>", "<Client secret which I created in "Keys" tab"); 
     var result = await _authContext.AcquireTokenAsync("https://graph.windows.net/", _credential);   
     var http = new HttpClient(); 
     var graphUrl = "https://graph.windows.net/myTenant.onmicrosoft.com/users/<My User Guid>?api-version=1.6";  
     var request = new HttpRequestMessage(new HttpMethod("GET"), graphUrl); 
     request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);  
     var response = await http.SendAsync(request); 
     return response; 

我總是得到一個403錯誤紫禁城。程序集「Microsoft.IdentityModel.Clients.ActiveDirectory」的版本是3.13.8.99。

那麼,我的配置有什麼問題?使用Azure Graph API再次讀取和寫入用戶租戶用戶數據需要做些什麼?

感謝您的幫助!

Alex

回答

0

您正在使用client credential flow獲取訪問令牌。這意味着您需要在Required permissions刀片上添加相關的應用權限

Azure廣告圖形api的所有應用程序權限都需要管理員同意。在添加應用程序權限後,請點擊Grant Permissions按鈕(以管理員帳戶登錄)。

+0

感謝您的回覆和您的幫助! 在我的AD中,我只看到「會員」的用戶。 我嘗試創建一個「全局管理員」用戶,但我打開他的屬性,這個用戶是「成員」。 所以,我不知道如何擁有或創建一個管理員,他的廣告可以授予所有其他用戶的惡意... 我該怎麼做? –

+0

你可以將目錄角色更改爲'Global admin'嗎?您帳戶的目錄角色是什麼?如果不是'global admin',請索取公司的IT支持 –

+0

對不起,我沒有在右邊的標籤中看到。我在「個人資料」標籤中看到,「用戶類型」是「成員」。但在「目錄角色」中,我們檢索從舊門戶創建的全局管理員。 最後一個問題:因爲隨着從舊門戶遷移到新門戶,配置發生了變化,您是否知道是否計劃了其他更改?我問這個問題,因爲在這個遷移之前,我們可以沒有問題地訪問Graph API,然後突然沒有任何工作,我們不得不改變我們的配置。 但現在,所有的作品再次。所以,感謝您寶貴的幫助! –