使用自定义域远程身份验证到SharePoint Online

时间:2012-11-19 10:41:52

标签: sharepoint authentication dns claims-based-identity office365

我们使用SharePoint Online远程身份验证来访问目标O365 sharepoint站点并检索FedAuth和rtFA Cookie。这适用于具有xxx.sharepoint.com域的目标URL。现在,如果已将此域自定义为example.com,则身份验证机制将无法抛出错误 - “无法找到登录请求中使用的伙伴DNS”。有没有办法我们可以对其域名已被定制为不反映.sharepoint.com的sharepoint在线站点进行身份验证。 ?

1 个答案:

答案 0 :(得分:10)

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

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

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

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

    • 第四,获取SetCookie的值,“srf_uPost”,“PPFT”并向ResponseUri请求响应。在请求标头中设置Cookie和ppft的值,并请求“srf_uPost”的值。在请求流中还包括“login =”+ username +“& passwd =”+ password。

    • 第五,从html获取“action”元素和“T”元素的值。并从action元素的值中获取url请求。将元素T包含为poststring。

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

您应该很容易通过,但是如果您愿意,可以找到我blog

中的所有代码