我试图通过应用程序访问流程搜索我自己和第三方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