2010-12-08 11 views
0

私は、IBMのWebSphereがユーザーのIDをバックエンド・データベースに伝播する方法を読んだことがあります(http://www.ibm.com/developerworks/websphere/techjournal/0506_barghouthi/0506_barghouthi.html)。 JBossにも同様の機能がありますか?理想的には、SPNEGOを使用して自分のJBossアプリケーションにログインし、そのIDをKerberosやその他のメカニズムを使ってPostgreSQLデータベースに伝播させたいと考えています。これは可能ですか?JBossデータベースのID伝播?

答えて

0

あなたがリンクした記事はそれに使用できますが、いくつかの注意点があります。

Kerberosを使用する異なるユーザーとしてアプリケーションサーバーを再認証することは、おそらく現実的ではありません。私のKerberosに関する知識(確かに限定されている)から、実際の認証ハンドシェイクを行うにはエンドユーザのやりとりが必要となるように設計されています。ユーザーはHTTP経由でアプリケーションサーバーとのハンドシェイクを行います。実際にはDB自体で再認証を求める仕組みはありません。

あなたのアプリケーションサーバーがスーパーユーザーとしてDBに接続する場合、フックを使ってPostgreSQLに "SET SESSION AUTHORIZATION TO ..."コマンドを発行できます。実際には再認証されず、セッション許可の役割が一時的に変更されます。

DBのソリューション(カスタム変数、PL/Perlなどのグローバル変数)にいくつかのセッション情報を保存し、そのフックを使用して作業することもできます。これは実際にはOracleソリューションのようですが、iircが現在のセッションを表示するビューに含まれるどこかのdbms_utilのグローバル変数であるクライアント識別子を設定します(postgresql 9.0には同じ役割を果たす「アプリケーション名」があります)