在线授权 Office 365/Sharepoint
Posted
技术标签:
【中文标题】在线授权 Office 365/Sharepoint【英文标题】:Authorization to Office 365/Sharepoint online 【发布时间】:2012-11-09 12:12:28 【问题描述】:我编写了一个 WCF 服务,它作为 (PaaS) 在 Azure 中托管。该服务又需要与 Sharepoint 2013 Online/Office 365 通信。
我正在考虑使用 Sharepoint Client 对象模型与之对话,但不断收到以下错误:“远程服务器返回错误:(403) Forbidden” 当我们通过浏览器登录访问 SharePoint 实例时,它通常会将您带到https://login.microsoftonline.com/login.srf,以便您可以使用 Live Id 登录。问题是我们使用的是联合帐户而不是 Live Id,因此再次重定向到 adfs 站点以登录。 我查看了http://www.wictorwilen.se/Post/How-to-do-active-authentication-to-Office-365-and-SharePoint-Online.aspx 的代码示例,该示例使用基于声明的身份验证,但在尝试检索 Saml 令牌时总是失败并显示“身份验证失败”消息。
如果我理解正确的话。这样做的一种方法是获取 Saml 令牌,将其传递给 SPO,后者将返回两个 cookie,我需要将它们包含在使用客户端对象模型发出的请求中。问题是我没有找到任何关于如何在 C# 中使用联合帐户进行身份验证的适当示例。
谁能指出我正确的方向,我可以如何继续授权我的 WCF 服务与 SharePoint 对话。
对不起,如果这是在错误的论坛。我不确定这是 Azure 问题还是只是 SharePoint,因为我对这两种技术都很陌生。
【问题讨论】:
在 *** 上有同样的问题。现在终于解决了:***.com/questions/11295953/claim-auth-from-adfs 我还写了一篇关于它的博客文章,并创建了一个带有功能区项目的 GitHub 存储库以开始使用。希望对你有帮助:jwillmer.de/blog/2013/01/04/… 我也遇到了同样的事情 - @jwillmer 我有一个不依赖于 win8\.net 4.5 的代码修改版本......如果你愿意接受,请告诉我github 的补丁或其他版本。 @TravisSharp 我很高兴接受您的拉取请求。开放改进! ;-) 【参考方案1】:试试下面的博客文章。访问 Office 365 API
的功能上个月刚刚宣布,从您的 Web 服务调用它的功能是相当新的。 This article 是一个很好的主题教程。
【讨论】:
【参考方案2】:您好,以防我们几天前注册为 Office365 经销商,我不得不学习一个痛苦的教训:身份验证。您从 sharepoint 获得的令牌仅在 2 小时内有效!也许这会在 Sharepoint 15 中改变,谁知道呢……
我认为这可能是一个有价值的提示,因为没有已知的解决方法...
【讨论】:
我知道它已经有一段时间了,但是有没有官方页面:MSDN 或类似的提到这个?【参考方案3】:您是否尝试过使用 Wictor 的示例代码并将 login.srf URL 替换为您的 ADFS 登录端点?
在您尝试此操作时保持 fiddler 处于打开状态,并每次检查请求/响应,您可能会看到更多详细信息,了解为什么 C# 隐藏在其对象模型中的响应正文中无法正常工作。
也请查看这篇博文,了解如何使用可以创建 SOAP 信封的任何东西从 ADFS 获取身份验证令牌:
http://leandrob.com/2012/02/request-a-token-from-adfs-using-ws-trust-from-ios-objective-c-iphone-ipad-android-java-node-js-or-any-platform-or-language/
【讨论】:
【参考方案4】:我知道这是一篇旧帖子,但通过应用程序使用 SharePoint Online 而不使用应用程序主体可能会违反您的许可协议。您应该使用真正的 OAuth 和作为 SDK 一部分的 TokenHelper 类来正确使用应用模型。
【讨论】:
【参考方案5】:使用 Office 365 SharePoint 网站创建一个环境,您可以在其中使用 ACS 在提供商托管的应用程序和本地 SharePoint 2013 场之间建立信任,就像您为 Office 365 SharePoint 开发应用程序一样地点。 您可以访问以下链接以进一步了解: http://msdn.microsoft.com/en-us/library/office/dn155905(v=office.15).aspx
【讨论】:
【参考方案6】:我在尝试对 SharePoint 对象模型进行类似操作时收到 403。我所要做的就是包含用户代理来纠正它。
在这里回答Using WebRequest to obtain cookies to automatically log into Sharepoint Online, getting variour errors
希望对你有所帮助。
【讨论】:
以上是关于在线授权 Office 365/Sharepoint的主要内容,如果未能解决你的问题,请参考以下文章
删除office2016/office2019 拥有2个需要激活的授权信息