我的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")]
中。
答案 0 :(得分:0)
Azure AD B2C目前不具备对应用程序角色的一等支持,也不具有作为令牌中的声明的组。
您可以在Azure AD B2C Feedback Forum
中申请此功能或者,您可以通过Custom Policies 自行实施。要执行此操作,您需要在“用户旅程”中添加一个步骤,该步骤调用图表以获取其中任何一个并将其作为声明添加到令牌中。有关详细信息,请参阅this article。