Sta*_*Kit 5 python saml single-sign-on
首先,我用谷歌搜索了这个问题,但发现了一些通用的解释,这些解释并没有让我很好地理解如何做事情。
其次 - 我是有效的系统用户(不是管理员)并且有权访问数据。即,我拥有有效的用户凭据,并且可以手动下载文件,但对于小型自动化,我希望通过 python 脚本从我的 PC 下载文件。
下载本身很简单,唯一的事情是 - 我需要在请求中提供有效的会话 ID cookie。即最后我需要通过最简单的方式获取这个cookie。
如果我对 SAML 的理解是正确的,我是一个用户代理,想要从服务提供商下载一个文件,该文件需要通过身份提供商(Microsoft)对我进行身份验证。通常我通过浏览器执行此操作,现在我可以在 PySide6 (QWebEngineView) 的帮助下模拟它。我首先在 QWebEngineView 中加载目标 URL。实际上,它是一个小型嵌入式 Web 浏览器,它将我重定向到 login.microsoft.com,询问凭据,然后将我重定向回服务提供商站点并设置会话 ID cookie。然后我就可以在我的请求中使用这个 cookie。它有效,但如果可能的话我想摆脱 GUI (PySide)。
我决定复制浏览器的流程,但几乎一开始就失败了。会发生什么:
我知道当我再次使用 302 响应的“位置”标头中提供的 URL 时,我应该添加更多标头/cookie。但是...我不知道login.microsoft.com 在这里期望什么。所以我的问题是 - 是否有任何描述此消息流的来源?或者也许有人已经这样做了,可以给我如何继续的建议?
我发现了一些与 SAML 相关的 python 库,但我发现 x509 证书和更多内容的配置非常复杂 - 看起来它们更适合在服务提供商端实现,而不是外部登录。