Python请求-SAML登录重定向

本教程将介绍Python请求-SAML登录重定向的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

Python请求-SAML登录重定向 教程 第1张

问题描述

我正在尝试从以下URL登录网站:"https://pollev.com/login"。由于我使用的是学校电子邮件,因此门户重定向到学校的登录门户,并使用该门户对登录进行身份验证。当你输入uw.edu电子邮件(例如:myname@uw.edu)时,它就会出现。UW登录后,向https://www.polleverywhere.com/auth/washington/callback发送POST请求回调,并带有SAMLResponse头部like this。我认为我需要从pollev的登录页面模拟GET请求,然后将登录头发送到UW登录页面,但我现在所做的不起作用。

以下是我的代码:

import requests

with requests.session() as s:
  header_data = {
 'user - agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
  '(KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
 'referer': 'https://pollev.com/login'
 }
 login_data = {
 'j_username' : 'username',
 'j_password' : 'password',
 '_eventId_proceed' : 'Sign in'
 }

 r = s.get('https://idp.u.washington.edu/idp/profile/SAML2/Redirect/SSO?execution=e2s1',
 headers=header_data, data=login_data)
 print(r.text)

现在,r.text显示了一个NoSuchFlowExecutionExecutionhtml页面。我遗漏了什么?登录网站通常需要登录、密码、推荐人和X-CSRF令牌,但我不知道怎么导航重定向进行身份验证。

推荐答案

您不会成功地伪装SAML2SSO。UW的身份提供商(IDP)正在寻求支持来自服务提供商(SP)polleverywhere.com的身份验证请求。这其中的一部分是验证请求是否真的来自polleverywhere。这可能很简单,因为需要从POLLELEYWORE进行SSL连接,但可能像需要加密和签名的身份验证请求一样复杂。由于您没有这些凭据,因此生成的响应将不可读。SP已向IdP注册。

现在,可能有不同的方式登录polleverywhere--不会触发SSO请求的不同URL,但可能受到网络限制或需要其他困难的身份验证。

好了关于Python请求-SAML登录重定向的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。