将Azure AD B2C与Xamarin App集成

时间:2016-08-15 15:53:12

标签: azure xamarin azure-ad-b2c

我的Xamarin App(PCL)调用Web API,如下面的代码所示:

df1

我的Web API授权如下:

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

我正在使用Azure AD B2C来获取令牌。我可以从Azure AD Graph获取用户角色。我不确定的是如何将从Graph查询返回的角色添加到传递给Web API的[Authorize(Roles = "Admin,BusinessAdmin")] 中。

1 个答案:

答案 0 :(得分:0)

Azure AD B2C目前不具备对应用程序角色的一等支持,也不具有作为令牌中的声明的组。

您可以在Azure AD B2C Feedback Forum

中申请此功能

或者,您可以通过Custom Policies 自行实施。要执行此操作,您需要在“用户旅程”中添加一个步骤,该步骤调用图表以获取其中任何一个并将其作为声明添加到令牌中。有关详细信息,请参阅this article