首页 文章

OneDrive for Business Oauth2 with REST

提问于
浏览
0

我有portal.office.com帐户,并希望通过我的REST应用程序访问tenant-my.sharepoint.com上的OneDrive业务 . 我已在Azure Active Directory中注册了我的应用程序并启动了Oauth2身份验证,如下所示:

https://login.windows.net/common/oauth2/authorize?response_type=code&client_id= '+ App.Key + '&redirect_uri = http://localhost:8889/';

在这个阶段,我从azure获得了AuthCode,下一阶段是获得会话令牌 .

作为身份验证的下一步,我正在使用params对https://login.windows.net/common/oauth2/token进行POST请求:'client_id=' App.Key 'client_secret=' App.Secret 'code=' AuthCode'redirect_uri = http://localhost:8889/ ' + ' grant_type = authorization_code ' + ' resource = '+URLEncode(' syncovery1');

不幸的是我收到错误:{“error”:“invalid_resource”,“error_description”:“AADSTS50001:在名为konnov.onmicrosoft.com的租户中找不到名为syncovery1的应用程序 . 如果应用程序没有由租户管理员安装或由租户中的任何用户同意 . 您可能已将您的身份验证请求发送给错误的租户 . \ r \ nTrace ID:1af2ced2-b2bb-4568-8a87-bd2d1186cf9a \ r \ n相关ID :15dcda2c-0599-4279-8744-27c61e6912a9 \ r \ n时间戳:2015-10-06 07:46:03Z“,”error_codes“:[50001],”timestamp“:”2015-10-06 07:46:03Z ”, “trace_id的”: “1af2ced2-b2bb-4568-8a87-bd2d1186cf9a”, “CORRELATION_ID”: “15dcda2c-0599-4279-8744-27c61e6912a9”}”

请建议可能的解决方案 . 在我的portal.office.com帐户中,我找不到第三方应用程序可能与该帐户关联的任何地方 . 你能猜到上次请求中'资源'参数的含义吗? portal.office.com中的哪些服务或许可证应该是活动的以允许身份验证?也许我只是没有激活OneDriveForBusiness订阅?

提前致谢,

1 回答

  • 0

    请求中的资源表示您要在特定租户中访问的资源 . 因此,资源应该是您在azure ad ("not App name") 中注册的 App Id . 如果'syncovery1'是应用程序的名称,则返回错误 . 还有一点要添加,不要对资源进行编码,因为 endpoints 可能无法识别它 . 和

    例如,如果要获取office365的所有资源 endpoints ,那么资源将是 - _https://api.office.com/discovery/ .

    同样,如果我的应用程序的应用程序ID是_https://mydrive.sharepoint.com/,使用应用程序名称注册为“mydrivesync”,则该资源应为_https://mydrive.sharepoint.com/ .

    请按照official documentation了解完整的详细信息 .

相关问题