【问题标题】:Missing UPN and PUID claims缺少 UPN 和 PUID 声明
【发布时间】:2016-05-04 04:51:32
【问题描述】:

我目前正在尝试使用以下代码从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返回预期的授权Bearer Token,但是当代码到达时:

var content = await response.Content.ReadAsStringAsync();

响应状态码是 400,内容“消息”给我一个“缺少 UPN 和 PUID 声明”。

鉴于我对 Microsoft Graph 还很陌生,我不明白这究竟意味着什么。如果我的逻辑或 AAD 应用程序的某些配置有误。我试过this solution,但很遗憾我听不懂。

非常感谢您的意见,我只询问我应该去哪里解决这个问题。

提前致谢。

【问题讨论】:

    标签: c# azure active-directory office365 microsoft-graph-api


    【解决方案1】:

    感谢您报告此问题。该 API 目前缺乏对使用外部帐户(如 Microsoft 帐户)登录 AAD 的用户的支持。我们正在努力解决这个问题,并期待更新可用。

    同时,尝试使用 Azure 门户创建常规 AAD 用户,并以该用户身份尝试 API。

    [Update-2016-2-16:修复现已到位。请试一试]

    【讨论】:

    • 您是否有关于这可能需要的任何潜在时间范围的更新,因为它目前对我的项目来说是一个巨大的阻碍。谢谢。
    • 当前的修复时间范围是在接下来的 2-3 周内。一旦修复生效,预计此处会有更新。
    • @sriramd,我会将您的回复标记为答案,但如果您能在修复到位后编辑您的帖子,我将不胜感激。非常感谢!
    • 修复程序现已到位。请试一试。
    猜你喜欢
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    • 2013-07-11
    • 2013-11-13
    相关资源
    最近更新 更多