私は django-openid-provider ( https://bitbucket.org/romke/django_openid_provider/ ) を使用しており、実際のサーバーにデプロイする前にその機能をテストする必要があります。OpenID 2.0 のドキュメントで POST リクエストを作成し、それを django のテスト サーバーに送信して openid トークンを取得しようとしました。
私の投稿は次のようになります。
http://192.168.232.151:8008/openid/
体:
openid.ns:http://specs.openid.net/auth/2.0
openid.mode:associate
openid.assoc_type:HMAC-SHA256
openid.session_type:DH-SHA256
また、Diffie-Hellman アルゴリズム用の公開鍵 (openid.dh_modulus、openid.dh_gen、openid.dh_consumer_public など) を提供しようとしましたが、リクエストで追加の鍵を取得するために OpenID 認証のトラフィックを盗聴しましたが、常に 500 Internal server error が発生しましたと
Exception Type: ProtocolError
Exception Value:
No mode value in message <openid.message.Message {('http://openid.net/signon/1.0', u'ns:http://specs.openid.net/auth/2.0\nopenid.mode:associate\nopenid.assoc_type:HMAC-SHA256\nopenid.session_type:DH-SHA256'): u'DH-SHA256EABv%252BfEoZlgh%252BeU71rlInEppkiuX\nopenid.dh_modulus:ANz5OguIOXLsDhmYmsWizjEOHTdxfo2Vcbt2I3MYZuYe91ouJ4mLBX%2BYkcLiemOcPym2CBRYHNOyyjmG0mg3BVd9RcLn5S3IHHoXGHblzqdLFEi%2F368Ygo79JRnxTkXjgmY0rxlJ5bU1zIKaSDuKdiI%2BXUkKJX8Fvf8W8vsixYOr\nopenid.dh_gen:Ag%3D%3D\nopenid.dh_consumer_public:AJs12O5ypo2N%2FL0RJiiOgu9llg2dFsnjthyH49dx6FXz52iDXNkS7gquOm6KEr%2BUfTmktyVMA5DrZwJ%2BrX1jk7sKmXJMmi9%2B7N5fa0wvz%2Fi6nrvg8Oqw31kh%2BtbD9ansUeATSlCfUoRCqeUHEABv%2BfEoZlgh%2BeU71rlInEppkiuX'}>
django-openid モジュールのデバッグ Message オブジェクトを構築するとこのエラーが発生することを発見しましたが、openid-provider サーバーを満たすパラメーターの値を見つけることができません
私が間違っていることを教えてください。私は難しい方法を選択していますか? ローカルで openid-client を使用して消費者サイトをエミュレートするものを使用できますか? または、誰かがそのような POST リクエストの正しい例を持っているでしょうか? ありがとう