【问题标题】:Authentication With Invoke-WebRequest使用 Invoke-WebRequest 进行身份验证
【发布时间】:2019-03-17 16:49:00
【问题描述】:

登录页面是这样的:https://login.procore.com/

我觉得我快要让它发挥作用了,但由于对登录程序缺乏了解而碰壁了。这是到目前为止的代码,没有实际的登录信息。

$r=Invoke-WebRequest https://login.procore.com/ -SessionVariable fb

$form = $r.Forms[0]

$form.Fields["session_email"] = "xxxxxxxxx"
$form.Fields["session_password"] = "xxxxxxxx"

$r=Invoke-WebRequest ('https://login.procore.com/' + $form.Action) -WebSession $fb -Method $form.Method  -Body $form.Fields 

有人可以帮助我了解缺少什么吗?我确实注意到$form.Fields 包含一个名为:session_sso_target_url 的空字段,但老实说,不知道它的含义或如何使用它。

【问题讨论】:

标签: powershell invoke-webrequest


【解决方案1】:

你没有给我足够的信息来提供完整的答案,因为我没有登录名,也没有看到注册免费试用的方法,而且你没有说明你遇到了什么样的错误正在获得。

我猜测session_sso_target_url 与联邦有关,这在语义上与单点登录 (SSO) 相关。在联合中,应用程序被配置为接受来自另一个登录域的登录。企业领域的一个明显例子是 ADFS,但任何时候你看到一个应用程序显示 Login with FacebookLogin with Google,都是一样的。联邦是一个很大的话题。具有目标 URL 的含义是,浏览器通常被重定向到身份提供者(ADFS / FB / GOOG 等),并带有回调 URL,一旦通过身份验证,浏览器应该返回到该回调 URL。

只要说我怀疑你不需要对这个字段做任何事情就够了!而我之所以这么说是因为我用 Fiddler 击中了它。

您应该了解 Fiddler。它是 Telerik 的免费调试代理。我不隶属于 Telerik,但我欠他们在网络抓取时节省了数小时的时间。 (这不是这项工作的唯一工具,如果任何版主认为我违反了网站规则,我很乐意清理这篇文章。)

这样做:

  • 安装 Fiddler
  • 将其设置为监听 127:0.0.1:whatever 并成为您的系统代理
  • 在“工具”>“选项”>“HTTPS”中,将其设置为解密 HTTPS(这会将所有证书替换为自动生成的自签名证书,因此在执行其他任务时不要继续运行)
  • 将您的过滤器设置为仅包含到 *.procore.com 的流量
  • 通过浏览器登录 - 您现在应该在左侧窗格中看到网络流量。捕获的流量就是您的基准。
  • 选择任何一个 Web 请求并查看右侧窗格中的 Inspectors 选项卡。您可以查看 Raw、Forms、Cookie 等。这可以让您大致了解您的客户在做什么。
  • 运行您的代码 sn-p。您现在可以比较基线和代码之间的差异,并进行相应调整。

【讨论】:

  • 我安装并运行了 Fiddler,正如你所说的 session_sso_target_url 是空的。 Procore 的登录过程对于我所知道的操作来说似乎太复杂了。现在不得不放弃这个项目。谢谢你的回答,你让我离我的目标更近了,但我在这方面缺乏经验阻碍了我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-13
  • 2011-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-17
相关资源
最近更新 更多