2015-01-09 44 views
2

我在WPF(Native Client)中創建了一個測試應用程序。此客戶端通過ADAL庫與Azure進行身份驗證,並且我成功登錄後獲取了令牌。我想要做的是獲得用戶所屬組的列表,以便我可以將此組用作訪問控制來訪問數據。從Azure AD檢索RBAC的用戶組成員資格

到目前爲止:

  • 成功設立的我與Azure的本地客戶端,坐在它的「Windows Azure的Active Directory的」委託權限爲「讀取目錄數據」和「啓用登錄和讀取用戶的個人資料」。 permission to other application screenshot

  • 採集登錄

  • 讀取用戶的個人資料信息
  • 創建的用戶和組的列表,並經過添加標記他們在Azure的AD各自的組。

當我嘗試用以下設置

private async void ReadUserRoles(object sender, RoutedEventArgs e) 
     { 
      var result = authContext.AcquireToken(resource, clientID, redirectUri); 
      var httpClient = new HttpClient(); 
      httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken); 
      var userID = result.UserInfo.UniqueId; 
      var url = string.Format("{0}{1}/users/{2}/memberOf?api-version=2013-04-05", "https://graph.windows.net/", tenantID, userID); 
      var msg = await httpClient.GetAsync(url); 

      var userRoles = await msg.Content.ReadAsStringAsync(); 
      MessageBox.Show(userRoles); 
     } 

圖形查詢取自查詢天青圖:http://msdn.microsoft.com/en-us/library/azure/jj126255.aspx 但後來我得到一個未經授權的錯誤。我登錄的用戶是Azure中的「全局管理員」。完整的錯誤信息是:

{"odata.error":{"code":"Authentication_MissingOrMalformed", 
"message":{"lang":"en","value":"Access Token missing or malformed."},"values":null}} 

我的主要目標是建立在數據是基於用戶對廣告中使用WPF客戶會員訪問的應用程序。

回答

相關問題