2015-01-09 4 views
2

Я создал тестовое приложение в WPF (собственный клиент). Этот клиент аутентифицируется с помощью Azure через библиотеку ADAL, и мне удалось приобрести токен после входа в систему. То, что я хотел бы сделать, - это получить список групп, членом которых является пользователь, чтобы я мог использовать эту группу в качестве элемента управления доступом для доступа к данным.Получить членство в группе пользователей из Azure AD для RBAC

До сих пор:

  • Успешно настроить мой родной клиент с Azure, и сел его разрешение делегат «Active Directory Windows Azure» в «Чтение данных каталога» и «Включить вход в систему и читать профили пользователей ». permission to other application screenshot

  • Приобретать маркер после авторизации

  • Чтение Пользователи Профиль информация
  • Создан список пользователей и групп, и добавил их к соответствующей группе в Azure AD.

При попытке запросить Azure GRAPH следующей установкой

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); 
     } 

GRAPH запрос взят из: 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}} 

Моя главная цель состоит в том, чтобы настроить приложение, в котором осуществляется доступ к данным на основе принадлежностью пользователей в AD с клиентом WPF.

ответ

2

Вам больше не нужно запрашивать график для получения информации о группе, у нас есть новая функция, которая будет доставлять их в токен. См. http://www.dushyantgill.com/blog/2014/12/10/authorization-cloud-applications-using-ad-groups/

+0

Спасибо =) Мне удалось сделать эту работу прямо сейчас! – jonas

Смежные вопросы