1

我正在我的网站上实施 SAML 支持。我在我的 Django 应用程序中使用OneLogin 的 Python SAML 工具包来执行此操作。在我的本地计算机上连接到 OneLogin 测试应用程序和 Azure 应用程序时,一切正常, http: //127.0.0.1 :8000(完全本地)或http://192.168.xx:800(本地网络)。一旦我在我的登台服务器上尝试这个,它强制所有 URL 到 https,事情就会失败。IE11 根本无法在身份提供者的响应中发布任何数据,这很奇怪,通常我会从 Toolkit 中收到如下错误:

The response was received at https://dev.mysite.com:80/saml/connect/ instead of https://dev.mysite.com/saml/connect/

因此,虽然应该正确配置一切,但 IdP 最终会尝试在端口 80 上 POST 回我的登台服务器,这使事情变得混乱。如果我从一开始就将其全部设置为使用端口 80,Chrome 就会发疯,因为它不相信https://...:80是安全的。我找不到任何引用此问题的文档或 SO 问题;我所看到的只是OneLogin Python 设置说明中的这个注释:

Important: Ensure that your URLs begin with http, not https.

但没有解释为什么。我彻底糊涂了。

4

1 回答 1

0

python-saml 支持 https 或 http。

您只需正确设置请求的值,使用 prepare_django_request 方法检查此演示(https://github.com/onelogin/python-saml/blob/master/demo-django/demo/views.py#L18 )

于 2016-09-30T14:29:26.970 回答