2016-10-13 89 views
1

目前正致力于将旧的内部公司站点部署到Azure AD,最后的障碍是用AAD取代LDAP集成(为此使用ActiveDirectoryClient类)。AAD缺乏权限

下面的代码在将要取代旧的新网站,但在旧网站的失败:

ActiveDirectoryClient adClient = General.GetADClient(); 
User currentUser = adClient.Users.Where(u => u.UserPrincipalName == Page.User.Identity.Name).ExecuteSingleAsync().Result as User; 

...产生以下错误:

{"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."}}} 

据我所知,这两个网络应用程序都具有几乎相同的设置。 AAD应用程序注册中显示的应用程序也类似。

所以我的问题具体是:有没有人知道我可能在这里失踪?

回答

0

帖子中的代码使用Azure AD Graph REST过滤Azure AD用户集合。要查询使用集合,如果您使用委托权限,我们可以将Users.ReadBasic.All权限授予应用程序。

为了缩小这个问题,我们还可以使用Fiddler来跟踪请求,然后解析令牌here以查看是否有足够的权限。有关Azure AD Graph许可和范围的更多详细信息,请参阅here

如果仍然存在问题,请将有效载荷数据发布到令牌中。