当我们要求对Office 365 MySites网站集进行委派管理访问时,我会因为遇到 Office 365 API 的问题而重视500错误,我会重视一些建议。
用例场景如下: 我们有独立的组织,'A'和'B',它们各自拥有各自的Azure Active Directroy帐户和O365 / Azure订阅。 组织B希望利用提供组织A的应用程序,该组织需要对其Office365 MySites网站集进行委派管理访问。
组织B使用OAuth2授权流程成功将应用程序添加到其Active Directory帐户,授予应用程序对其公司活动目录所需的权限。
最后一部分是将组织B中管理员帐户的访问权委托给组织B的Office 365帐户中的Mysites网站集。如果我们通过管理面板使用手动流程一切正常,虽然通过API以编程方式我们收到“500”错误。
我们使用以下调用以编程方式将用户添加为网站集管理员:(请注意:我在下面使用了[dummmy id])
端点网址:
的https://< ..org_a ..> .my.sharepoint.com /个人/ [[user_OrganisationA_com]] / _api /网络/ siteUsers / getByEmail(@u)@ U ='[[信息@ _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管理门户手动应用此功能使我们相信我们正在遇到阻碍我们实现目标的错误。
任何建议都将不胜感激!
答案 0 :(得分:0)
您是否在执行请求的网站上使用SSL?