現在、すべて同じサーブレット コンテナー (現在は Tomcat ですが、私のソリューションを Tomcat だけに限定したくありません) にデプロイされている複数の JVM ベース (Grails、Servlets) Web アプリケーションにまたがるシングル サインオン ソリューションを実装しようとしています。すべての Web アプリケーションは、共通のデータベースを共有します。
CAS やその他のサードパーティ ライブラリの使用から、シングル サインオンを処理する新しい Web サービスの作成まで、さまざまなオプションを検討しましたが、ビジネスを本当に満足させるものはないようです。私の現在の実装には、 AuthenticationProvidersの共通実装と、Spring Security に基づく事前認証フィルターを持つ新しい jar ライブラリの作成が含まれます。
このアプローチでは、アプリケーションが認証するための複数の AuthenticationProvider (現在は Active Directory とデータベース) があります。認証が成功すると、ユーザー、有効期限、およびトークンを含む行がセッション テーブルに挿入されます。トークンは、ユーザーのマシンに Cookie として保存され、事前認証フィルターに現在のセッションがあることを検証するために使用されます。
以前にこれを行ったことがないので、大きなセキュリティ上の問題を引き起こしていないことを確認したいのですが、トークンを作成するために何が必要かを知りたいですか? この時点で、単純な GUID で十分だと思われますか?
現在、Spring Security 3.0.x に取り組んでおり、まだ 3.1 にアップグレードしていません。
前もって感謝します。