我試圖通過應用程序訪問流程搜索我自己和第三方Azure Active Directoriy中的用戶 我使用以下內容獲得有效的令牌。Authorization_RequestDenied:沒有足夠的權限來完成操作。」錯誤與應用程序,只在第三方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;
我用這個方法來搜索用戶給定的名稱。
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;
}
這一切工作正常在Azure的AD我第一次安裝的應用程序。
但是,當我嘗試使用該應用程序在另一個Azure的活動目錄我的錯誤:Authorization_RequestDenied: Insufficient privileges to complete the operation."
我在原來的Azure的AD我已經設置我需要的應用程序訪問圖形API和搜索的所有權限用戶:
在第三方Azure的AD我已經通過管理流走了,並授予該應用程序所需的所有權限:
至於我可以看到我得到一個有效的令牌給每個Azure的廣告,但我不斷收到同樣的錯誤時,我嘗試訪問第三方Azure的AD。
我改變什麼AD,我試圖訪問的方法是在
string authority = string.Format(CultureInfo.InvariantCulture, "https://login.microsoftonline.com/{0}", "<AD>.onmicrosoft.com");
改變<AD>
我把一切相同。
謝謝你,我沒有,我使用Azure的AD圖形API真正實現! 如果我改變了終點,我得到「錯誤請求」:「無效的版本」,這是我收集將意味着我需要改變我的代碼,使用了不同的電話? – Jeppe
您要使用Azure的AD圖形API或微軟圖形API?您的sdk似乎使用azure廣告圖形api。 –
是的,我從我目前使用Azure的AD圖形API你的答案的理解。我想使用Microsoft圖形API。 – Jeppe