2016-08-15 5 views
1

Мои Xamarin App (PCL) вызывает Web API, как показано в коде ниже:Интеграция Azure AD B2C с Xamarin App

AuthenticationResult ar = await new AuthHelper().AcquireTokenSilentAsync(); 
using (HttpClient client = new HttpClient()) 
{ 
    client.BaseAddress = new Uri(Settings.ApiUrl); 
    client.DefaultRequestHeaders.Accept.Clear(); 
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ar.Token); 
    using (HttpResponseMessage response = await client.GetAsync("api/job")) 
    { 
     response.EnsureSuccessStatusCode(); 
     using (HttpContent content = response.Content) 
     { 
      string result = await content.ReadAsStringAsync(); 
      return result != null ? JsonConvert.DeserializeObject<ObservableCollection<JobTask>>(result) : null; 
     } 
    } 
} 

My Web API разрешается следующим образом:

[Authorize(Roles = "Admin,BusinessAdmin")] 

I я использую Azure AD B2C для получения токена. Я могу получить роли пользователя из графика Azure AD. Я не уверен, как добавить роли, возвращаемые из запроса Graph, в AuthenticationResult.Token, который передается в веб-API.

ответ

0

Azure AD B2C в настоящее время не поддерживает поддержку первого класса для ролей приложений или групп в качестве претензий в токене.

Вы можете запросить эту функцию в Azure AD B2C Feedback Forum

В качестве альтернативы вы можете осуществить это самостоятельно с помощью Custom Policies. Чтобы сделать это, вы добавили бы шаг в свой пользовательский маршрут, который обращается к Графику, чтобы получить любой из них, и добавляет их в качестве претензий к токену. См. this article для получения дополнительной информации.

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