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

Tin*_*inu 8 authentication dns sharepoint claims-based-identity office365

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

Kun*_*oor 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"元素的值.并从动作元素的值中获取对url的请求.将元素T包含为poststring.

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

您应该很容易通过,但是如果您愿意,可以在我的博客中找到所有代码