0

我会重视一些建议,因为当我们请求对 Office 365 MySites 网站集的委派管理访问权限时,我们正面临Office 365 API的问题,它返回 500 错误。

用例场景如下: 我们有独立的组织“A”和“B”,它们都拥有各自的 Azure Active Directory 帐户和 O365/Azure 订阅。组织 B 希望使用提供组织 A 的应用程序,该应用程序需要对其 Office365 MySites 站点集合的委托管理访问权限。

组织 B 通过使用 OAuth2 授权过程成功地将应用程序添加到其 Active Directory 帐户,授予应用程序对其公司 Active Directory 所需的权限。

最后一部分是将组织 B 中的管理员帐户的访问权限委派给组织 B 的 Office 365 帐户中的 Mysites 网站集。如果我们通过管理面板使用手动过程一切正常,尽管通过 API 以编程方式我们收到“500”错误。

我们正在使用以下调用以编程方式将用户添加为网站集管理员:(请注意:我在下面使用了 [dummmy id's])

端点网址:

https://<..org_a..>.my.sharepoint.com/personal/[[user_OrganisationA_com]]/_api/web/siteUsers/getByEmail(@u)?@u='[[info@_OrganisationA.com' ]] 方法:POST

Body: {'__metadata':{ 'type': 'SP.User' }, 'IsSiteAdmin':'true'}

HTTP Headers:
•   "Content-Type": "application/json; odata=verbose"
•   "X-HTTP-Method": "MERGE"
•   "Authorization": "Bearer <OAuth2 token>"
•   "Accept": "application/json"

根据上述请求,我们尝试将 info@_organisationB.com 作为网站集管理员添加到 One Drive for Business 服务中的 UserC 个人网站(UserC 由电子邮件 UserC@_organisationB.com 标识)。用户 info@_organisationB.com 在组织 B 的 Office365 域中具有全局管理员权限,而 UserC@_organisationB.com) 是没有管理员权限的基本用户。

该调用返回 500 HTTP 状态代码(内部服务器错误)和以下消息:

 object(stdClass)[18]
 public 'odata.error' => 
 object(stdClass)[19]   
 public 'code' => string '-2146232832,     Microsoft.SharePoint.SPException' (length=45)
  public 'message' => 
    object(stdClass)[20]
      public 'lang' => string 'en-US' (length=5)
      public 'value' => string 'You need to be a site collection administrator to set this property.' (length=68)

据我们所知,API 调用永远不应该返回 500 HTTP 状态代码(内部服务器错误),如果不允许我们做我们想要做的事情,它应该提供 Insufficiente 权限消息或类似消息,但是,我们可以手动应用这一事实通过 SharePoint Online 管理门户让我们相信我们遇到了一个阻止我们实现预期目标的错误。

任何建议将不胜感激!

4

1 回答 1

0

您是否在执行请求的网站上使用 SSL?

于 2015-10-26T22:22:35.027 回答