ログインユーザー、ADユーザー名を取得するためにクエリに何を書き込むか教えていただけますか? ! GivenName、FamilyName、displayname ---- 私はドメイン** me.username **が必要です。ドメインを持っているので、ユーザー名だけです。 これは完全に動作し、ユーザーのADグループを取得するため、ユーザー名を取得するために何を変更する必要がありますか。現在のユーザーのAzure AD Graph APIを使用してログイン/ユーザー名を取得する方法
public async Task<List<Groups>> GetAdGroups(string authority, string resource, string clientId, string returnUri)
{
JObject jResult = null;
AuthenticationResult authResult = null;
var authContext = new AuthenticationContext(authority);
if (authContext.TokenCache.ReadItems().Any())
{
authContext = new AuthenticationContext(authContext.TokenCache.ReadItems().First().Authority);
}
var platformParams = new PlatformParameters((Activity)Forms.Context);
authResult = await authContext.AcquireTokenAsync(resource, clientId, new Uri(returnUri), platformParams);
var uri = new Uri(returnUri);
string graphRequest = String.Format(CultureInfo.InvariantCulture, "{0}/{1}/users/{2}/memberOf?api-version=1.5", ServiceConstants.graphResourceUri, ServiceConstants.tenant, authResult.UserInfo.UniqueId);
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, graphRequest);
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", authResult.AccessToken);
HttpResponseMessage response = await client.SendAsync(request);
List<Groups> memberOf = new List<Groups>();
string content = await response.Content.ReadAsStringAsync();
jResult = JObject.Parse(content);
if (jResult["odata.error"] != null)
{
memberOf.Add(new Groups { id = "Error", displayName = (string)jResult["odata.error"]["message"]["value"] });
return memberOf;
}
if (jResult["value"] == null)
{
memberOf.Add(new Groups { id = "Error", displayName = "Unknown Error." });
return memberOf;
}
foreach (JObject result in jResult["value"])
{
memberOf.Add(
new Groups
{
id = (string)result["objectId"],
displayName = (string)result["displayName"]
});
}
return memberOf;
}
誰かが助けることを望みます。敬具、キリスト教徒。
authContext(https://jwt.ioを確認)もデコードできます。これにはユーザー名が含まれるためです。 – RasmusW