Ich versuche, über den Anwendungszugriffsfluss nach Benutzern in meinem eigenen und einem Drittanbieter Azure Active Directory zu suchen erhalten ein gültiges Token.Authorization_RequestDenied: Unzureichende Berechtigungen, um den Vorgang abzuschließen. "Fehler mit App, nur bei Drittanbieter AD
string authority = string.Format(CultureInfo.InvariantCulture, "https://login.microsoftonline.com/{0}", "<AD>.onmicrosoft.com");
AuthenticationContext authContext = new AuthenticationContext(authority);
ClientCredential clientCredential = new ClientCredential(<clientId>, <appKey>);
AuthenticationResult result = await authContext.AcquireTokenAsync("https://graph.windows.net" , clientCredential);
string TokenForApplication = result.AccessToken;
ich diese Methode für Benutzer mit einem bestimmten Namen suchen.
public async Task<List<IUser>> UsersSearch(IActiveDirectoryClient client, string searchString)
{
List<IUser> usersList = null;
IPagedCollection<IUser> searchResults = null;
IUserCollection userCollection = client.Users;
searchResults = await userCollection.Where(user =>
user.UserPrincipalName.StartsWith(searchString) ||
user.GivenName.StartsWith(searchString)).Take(10).ExecuteAsync();
usersList = searchResults.CurrentPage.ToList();
return usersList;
}
Dies alles auf der Azure AD funktioniert gut, wo ich zum ersten Mal Setup die App.
Aberwenn, wenn ich versuche, die App in einem anderen Azure Active Directory verwenden ich den Fehler: Authorization_RequestDenied: Insufficient privileges to complete the operation."
In meinem ursprünglichen Azure AD habe ich gesetzt alle Berechtigungen ich für den App benötigen Sie den Grafik-API und Suche zugreifen für Benutzer:
In der dritten Azure AD habe ich über die Admin-Flow gegangen und gewährt der App, alle benötigten Berechtigungen:
Soweit ich sehen kann, bekomme ich ein gültiges Token für jedes Azure AD, aber ich erhalte immer den gleichen Fehler, wenn ich versuche, auf den Azure AD von Drittanbietern zuzugreifen.
So wie ich das ändern, was AD ich Zugang versuche durch <AD>
in
string authority = string.Format(CultureInfo.InvariantCulture, "https://login.microsoftonline.com/{0}", "<AD>.onmicrosoft.com");
Wechsel halte ich alles andere gleich.
Danke, ich wusste nicht, dass ich tatsächlich die Azure AD Graph API verwendet habe! Wenn ich den Endpunkt ändere, bekomme ich "BadRequest": "Ungültige Version", was ich erhalte, würde bedeuten, dass ich meinen Code ändern muss, um einen anderen Satz von Anrufen zu verwenden? – Jeppe
Sie möchten Azure AD Graph API oder Microsoft Graph API verwenden? Ihr SDK scheint azurblaue Ad-Grafik-API zu verwenden. –
Ja, ich habe aus Ihrer Antwort verstanden, dass ich derzeit Azure AD Graph API verwende. Ich möchte Microsoft Graph API verwenden. – Jeppe