适用于简单用户的Azure AD oauth2身份验证的Sharepoint REST API

时间:2015-07-01 10:19:12

标签: sharepoint sharepoint-2013

我尝试使用Azure AD oauth2从我的服务器访问sharepoint站点上的文件,我创建了具有此类权限的多租户Azure AD应用程序

My Azure  AD   app  permissions

在此之后我将通过标准的oauth2流程来获取令牌:

我将用户重定向到https://login.windows.net/common/oauth2/authorize?client_id=123XXXXXXXXf4d5d4512&response_type=code&redirect_uri=https%3A%2F%2FdXXXXXXX%2Foffice365_oauthcallback.html 当管理员用户登录时,一切顺利,但普通用户无法登录,他正在:

  

其他技术信息:

     

相关ID:d81a1cca-1c4f-4da1-9162-88ba74d57775

     

时间戳:2015-07-01 09:49:53Z

     

AADSTS90093:此操作只能由管理员执行。   退出并以管理员身份登录或与您联系   组织的管理员。

我认为他得到了这个因为不能使用某些权限

可以帮助我选择正确的权限,这样我就可以使用Azure AD oauth2普通用户进行授权,而不是仅限管理员。

我试图从应用程序中删除对Azure权限的访问权限并仅保留对sharepoint的访问权限,但结果我得到了

  

AADSTS65005:客户端应用程序已请求访问资源“00000002-0000-0000-c000-000000000000”。此请求失败,因为客户端未在其requiredResourceAccess列表中指定此资源。%0d%0aTrace ID%3a 97d7ddff-0eaf-487c-83be-e277970f9339%0d%0aCorrelation ID%3a dcf33c54-fb51-46d9-9ee5-09db8d425b0d% 0d%0aTimestamp%3a 2015-07-01 09%3a58%3a05Z

我试图关注https://social.msdn.microsoft.com/Forums/en-US/088c7f00-70ae-47ac-abe6-bdf6b5778468/aadsts65005-the-request-has-failed-because-the-client-has-not-specified-this-resource-in-its?forum=WindowsAzureAD并将& resorce = param作为sharepoint网站

https://login.microsoftonline.com/common/oauth2/authorize?client_id=123ae4 *** 5d4512& response_type = code& redirect_uri = https%3A%2F%2FdXXXXXXX%2Foffice365_oauthcallback.html& resource = https://SITE.sharepoint.com/DP/

因此我得到了这个

  

AADSTS50001:资源https://SITE.sharepoint.com/DP/不是   已注册该帐户。跟踪ID:   b30da866-5a89-4962-9617-92a7cfe649b9相关ID:   48a5ef84-8211-4588-8339-05ba7154fbc6

我把& resorce = param作为sharepoint site DOmain

https://login.microsoftonline.com/common/oauth2/authorize?client_id=123ae4 *** 5d4512&安培; RESPONSE_TYPE =代码&安培; REDIRECT_URI = HTTPS%3A%2F%2FdXXXXXXX%2Foffice365_oauthcallback.html&安培;资源= https://SITE.sharepoint.com

得到了

  

其他技术信息:相关ID:   7f006d85-a72a-480f-b92e-0c706190f73e时间戳:2015-07-01 10:13:17Z   AADSTS90093:此操作只能由管理员执行。   退出并以管理员身份登录或与您联系   组织的管理员。

我做错了什么?有没有办法通过Azure AD为普通用户制作oauth2,而不仅仅是管理员?

1 个答案:

答案 0 :(得分:0)

我在此页面上找到了答案http://blog.beecomedigital.com/2015/06/08/aadsts90093-calling-principal-cannot-consent-due-to-lack-of-permissions/它包含您可以为AD App设置的所有权限,这些权限不需要管理员权限被接受。