缺少 UPN 和 PUID 声明
Missing UPN and PUID claims
我目前正在尝试使用以下代码从 Microsoft Graph 访问特定资源:
private const string _userUrl = "https://graph.microsoft.com/v1.0/me";
public static async Task<UserProfile> GetUserProfile()
{
using (var client = new HttpClient())
{
using (var req = new HttpRequestMessage(HttpMethod.Get, _userUrl))
{
var token = await GetToken(true);
req.Headers.Add("Authorization", string.Format("Bearer {0}", token));
req.Headers.TryAddWithoutValidation("Content-Type", "application/json");
using (var response = await client.SendAsync(req))
{
var content = await response.Content.ReadAsStringAsync();
UserProfile profile = JsonConvert.DeserializeObject<UserProfile>(content);
return profile;
}
}
}
}
GetToken returns 预期的授权Bearer Token,但是当代码到达:
var content = await response.Content.ReadAsStringAsync();
响应状态码为400,内容"message"给我一个"Missing UPN and PUID claims"。
鉴于我对 Microsoft Graph 还很陌生,所以我不明白这到底是什么意思。如果我的逻辑或 AAD 应用程序的某些配置有误。我已经试过了 this solution,但遗憾的是我无法理解它。
非常感谢您的意见,我只询问解决问题的方向。
提前致谢。
感谢您报告此问题。 API 目前不支持使用外部帐户(如 Microsoft 帐户)登录 AAD 的用户。我们正在努力解决这个问题,并期待在可用时进行更新。
同时,尝试使用 Azure 门户创建常规 AAD 用户,并尝试 API 作为该用户。
[Update-2016-2-16:现已修复。请试一试]
我目前正在尝试使用以下代码从 Microsoft Graph 访问特定资源:
private const string _userUrl = "https://graph.microsoft.com/v1.0/me";
public static async Task<UserProfile> GetUserProfile()
{
using (var client = new HttpClient())
{
using (var req = new HttpRequestMessage(HttpMethod.Get, _userUrl))
{
var token = await GetToken(true);
req.Headers.Add("Authorization", string.Format("Bearer {0}", token));
req.Headers.TryAddWithoutValidation("Content-Type", "application/json");
using (var response = await client.SendAsync(req))
{
var content = await response.Content.ReadAsStringAsync();
UserProfile profile = JsonConvert.DeserializeObject<UserProfile>(content);
return profile;
}
}
}
}
GetToken returns 预期的授权Bearer Token,但是当代码到达:
var content = await response.Content.ReadAsStringAsync();
响应状态码为400,内容"message"给我一个"Missing UPN and PUID claims"。
鉴于我对 Microsoft Graph 还很陌生,所以我不明白这到底是什么意思。如果我的逻辑或 AAD 应用程序的某些配置有误。我已经试过了 this solution,但遗憾的是我无法理解它。
非常感谢您的意见,我只询问解决问题的方向。
提前致谢。
感谢您报告此问题。 API 目前不支持使用外部帐户(如 Microsoft 帐户)登录 AAD 的用户。我们正在努力解决这个问题,并期待在可用时进行更新。
同时,尝试使用 Azure 门户创建常规 AAD 用户,并尝试 API 作为该用户。
[Update-2016-2-16:现已修复。请试一试]