既成のミドルウェアを使用せずに、wsgi-appをブラウザーセッション管理に実装する可能性と推奨事項を検討しています。
検討中の一般的なアプローチは次のとおりです。
ブラウザとサーバー間でSSLを使用します。SSLセッションIDをWSGIまたはOS.environmentに公開し、アプリケーションレベルの永続性と認証を有効にするセッションIDとして使用します。サーバーとブラウザが再度ハンドシェイクするとSSLセッションIDがいつでも変更される可能性があるため、Cookieを使用して、生成されたSSLIDのハッシュバージョンを保持することをお勧めします。ハンドシェイクしてSSLIDの変更が検出された場合(環境に公開されたSSLセッションIDがクライアントから返されたCookieと一致しない場合)、ハッシュされたCookieをチェックして、以前の既知のセッションIDが含まれているかどうかを確認できます。次に、現在のセッションを続行し、Cookieで使用される(およびバックエンドデータベースに保存される)SSLセッションIDを、ハンドシェイクを介して新しく生成されたSSLセッションIDに更新する必要があります。したがって、SSLセッションIDを使用してもセッションを続行できます。
私が理解しているように、SSLでセッションIDを生成し、セッションIDを保持するためにcookies+hmacだけに依存するよりも安全な処理を実行するという考え方です。
上記のプロセスについての誰かの考えに興味があります。原則としては聞こえますが、この種の機能についてはほとんど経験がありません。いくつかのシナリオでクライアントとサーバーとwsgi-appの間の交換の流れを引き出しましたが、うまくいくように見えますが、すべてのベースをカバーしたのは快適ではありません。