授权到Office 365 / Sharepoint在线
我正在编写一个作为(PaaS)在Azure中托pipe的WCF服务。 该服务反过来需要与Sharepoint 2013 Online / Office 365交谈。
我正在寻找使用Sharepoint客户端对象模型来交谈,但不断收到以下错误:“远程服务器返回一个错误:(403)禁止”当我们通过浏览器访问SharePoint实例login时,它通常需要你到https://login.microsoftonline.com/login.srf,以便您可以使用Live IDlogin。 问题是我们正在使用联合帐户而不是Live ID,因此再次redirect到adfs站点进行login。 我看了一个代码示例在http://www.wictorwilen.se/Post/How-to-do-do-active-authentication-to-Office-365-and-SharePoint-Online.aspx使用基于声明的身份validation,但是当尝试检索Saml令牌时,总是失败,出现“validation失败”消息。
如果我正确理解这一点。 这样做的一个方法是获得Saml Token,将其传递给SPO,然后返回两个Cookie,我需要将其包含在使用Client对象模型的请求中。 问题是我没有find任何关于如何在C#中使用Federated帐户进行身份validation的正确示例。
任何人都可以指向正确的方向,我可以继续授权我的WCF服务与SharePoint交谈。
对不起,如果这是在错误的论坛。 我不确定这是Azure问题还是SharePoint,因为我对这两种技术都很陌生。
尝试以下博客文章。 上个月刚刚宣布访问Office 365 API
的能力,从Web服务调用这个function的能力是相当新的。 这篇文章是关于这个主题的一个很好的教程。
嗨,以防万一,我们注册为Office365经销商几天前,我不得不学习一个痛苦的激情:validation。 您从Sharepoint获得的令牌只有2小时有效! 也许这将改变Sharepoint 15谁知道…
我认为这可能是一个有价值的提示,因为没有已知的解决方法…
您是否尝试过使用Wictor的示例代码,并用您的ADFSlogin端点replacelogin.srf URL?
在你尝试这个时候保持fiddler打开,并且每次检查请求/响应,你可能会看到更多的细节,为什么在C#隐藏在对象模型中的响应正文中不工作。
看看这个博客post,关于如何使用任何可以创buildSOAP信封的方法从ADFS获取身份validation令牌:
我知道这是一个旧post,但通过应用程序使用SharePoint Online而不使用应用程序主体可能违反了您的许可协议。 您应该使用真正的OAuth和作为SDK一部分的TokenHelper类正确使用应用程序模型。
使用Office 365 SharePoint网站创build一个环境,您可以使用ACS在提供程序托pipe的应用程序与本地SharePoint 2013服务器场之间build立信任关系,就像您为Office 365 SharePoint网站开发应用程序一样。 您可以访问以下链接以进一步了解: http : //msdn.microsoft.com/en-us/library/office/dn155905(v=office.15).aspx
我试图做类似的SharePoint对象模型时得到了403。 我所需要做的就是包括用户代理。
在这里回答使用WebRequest获取Cookie,以自动login到Sharepoint Online,获取variour错误
希望这是一些帮助。