現在、次のコードを使用して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 は予想される承認ベアラー トークンを返しますが、コードが到達すると:
var content = await response.Content.ReadAsStringAsync();
応答ステータス コードは 400 で、コンテンツの「メッセージ」から「UPN と PUID のクレームがありません」というメッセージが表示されます。
私は Microsoft Graph にかなり慣れていないため、それが何を意味するのか正確にはわかりません。ロジックを間違えているか、AAD アプリケーションの構成を間違えている場合。この解決策を試しましたが、残念ながら理解できませんでした。
ご意見をお待ちしております。この問題を解決するためにどこを見ればよいかをお尋ねするだけです。
前もって感謝します。