sharepoint - 使用自定义域对 SharePoint Online 进行远程身份验证

标签 sharepoint authentication dns claims-based-identity office365

我们已使用 SharePoint Online 远程身份验证来访问目标 O365 共享点网站并检索 FedAuth 和 rtFA cookie。这对于具有 xxx.sharepoint.com 域的目标 URL 来说效果很好。现在,如果此域已自定义为 example.com,则身份验证机制将失败并抛出错误 - “无法找到登录请求中使用的合作伙伴 DNS”。有没有一种方法可以针对其域已自定义为不反射(reflect) .sharepoint.com 的 sharepoint 在线站点进行身份验证。 ?

最佳答案

据我了解,SharePoint 的自定义域不再保持声明感知。 所以,如果你真的想获得 cookie,解决方案不会非常理想,而是一些 hacky 的东西。 鉴于微软的诸多限制,除了屏幕报废之外,没有直接的解决方案来解决这个问题。我成功了,可以通过屏幕抓取获取 fedAuth cookie。 我知道,这并不容易,但很有可能。它将要求您向 SharePoint 门户发出大约 6 个 Web 请求。

  • 第一个是对自定义域的 Web 请求。

  • 其次,从响应 header 中获取“X-Forms_Based_Auth_Required”的值,并向其发出请求。

  • 第三,从响应头中获取SetCookie(rps context cookie)和Location的值,并向Location发起请求。

    • 第四,获取SetCookie、“srf_uPost”、“PPFT”的值并向响应的ResponseUri发起请求。在请求 header 中设置 Cookie 和 ppft 的值,并向“srf_uPost”的值发出请求。还应在请求流中包含“login=” + 用户名 + “&passwd=” + 密码。

    • 第五,从html中获取“action”元素和“T”元素的值。并向您从操作元素的值获取的 url 发出请求。包含元素 T 作为后置字符串。

    • 第六,重复第五步,这次你将得到 fedAuth cookie 响应。

你应该很容易就能通过,但是如果你愿意,你可以在我的 blog 中找到所有代码。

关于sharepoint - 使用自定义域对 SharePoint Online 进行远程身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13452124/

相关文章:

共享点 2013 : Inserting image on page javascript csom

javascript - Sharepoint - 如何从列表中的 Javascript 表单中删除链接

laravel - Tymon\JWTAuth::toUser 错误:需要 token

javascript - 如何在 Neo4j 2.2.x 中使用 JQuery 事务性 Cypher HTTP 端点和新的 REST API 身份验证和授权

macos - Mac OSX Yosemite 上的 com.apple.mDNSResponder.plist 文件

javascript - 如何将外部网站链接到内部 javascript 页面

sharepoint - 在 SharePoint 2010 中部署自定义 dll

c# - Sharepoint 用什么语言开发?

java - 基本身份验证在 WebSphere 7 上不起作用

c# - 如何知道网络接口(interface)何时在 C# 中使用路由器作为 DNS 服务器?