我在WPF(Native Client)中創建了一個測試應用程序。此客戶端通過ADAL庫與Azure進行身份驗證,並且我成功登錄後獲取了令牌。我想要做的是獲得用戶所屬組的列表,以便我可以將此組用作訪問控制來訪問數據。從Azure AD檢索RBAC的用戶組成員資格
到目前爲止:
成功設立的我與Azure的本地客戶端,坐在它的「Windows Azure的Active Directory的」委託權限爲「讀取目錄數據」和「啓用登錄和讀取用戶的個人資料」。
採集登錄
- 讀取用戶的個人資料信息
- 創建的用戶和組的列表,並經過添加標記他們在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客戶會員訪問的應用程序。
謝謝=)我已經設法完成這項工作了! – jonas