1

サイトに SAML サポートを実装しています。これを行うために、Django アプリでOneLogin の Python SAML Toolkitを使用しています。http://127.0.0.1:8000 (完全にローカル) またはhttp://192.168.xx:800 (ローカル ネットワーク)のいずれかのローカル マシンを使用している場合、OneLogin テスト アプリと Azure アプリの両方に接続すると、すべて正常に動作します。すべての URL を強制的に https にするステージング サーバーでこれを試すとすぐに、失敗します。IE11 は、ID プロバイダーの応答でデータをまったく POST できません。これは奇妙です。通常、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 に答える