Ich spiele mit Microsoft Graph, um über meine Anwendung auf Azure Active Directory zuzugreifen und die REST-API direkt (ohne SDK) zu verwenden.Abrufen eines Gastbenutzers nach userPrincipalName mit Microsoft Graph
Nach dem documentation, sollte ich in der Lage sein, einen Benutzer abzurufen aus ihren id
oder userPrincipalName
/users/{id | userPrincipalName}
verwenden.
Dies funktioniert zwar, aber nicht für Gastbenutzer. Bei Gastbenutzern ist userPrincipalName
etwas wie name_originaldomain#EXT#@mydomain.onmicrosoft.com
und versucht, die Benutzerergebnisse in eine 404 Not Found
zu erhalten.
Dies ist der Code, ich bin derzeit mit:
graphClient = new HttpClient();
graphClient.BaseAddress = new Uri("https://graph.microsoft.com/v1.0/");
graphClient.DefaultRequestHeaders.Add("Authorization", $"{token.TokenType} {token.AccessToken}");
HttpRequestMessage request = new HttpRequestMessage(
HttpMethod.Get,
$"users/{Uri.EscapeUriString(username)}"
);
HttpResponseMessage response = await graphClient.SendAsync(request);
if (response.IsSuccessStatusCode)
{
return await response.Content.ReadAsAsync<UserResult>();
}
// I am here with a 404
bin ich etwas fehlt oder etwas falsch zu machen?
Ich weiß, dass ich den Benutzer per E-Mail abrufen kann, und es ist die Abhilfe, die ich zur Zeit für Gastbenutzer in Kraft gesetzt, aber ich fürchte, die E-Mail aus dem UPN bekommen (die einzige Information, die ich habe) ist keine robuste Situation in der Zukunft. –