84

JAASを理解するのに苦労しています。それはすべて、本来あるべきよりも複雑に思えます(特にSunのチュートリアル)。Struts + Spring + Hibernateとカスタムユーザーリポジトリに基づくJavaアプリケーションでセキュリティ(認証+承認)を実装する方法についての簡単なチュートリアルまたは例が必要です。ACEGIを使用して実装できます。

4

6 に答える 6

51

他のユーザーは上記のいくつかの非常に便利なリンクを提供しているので、私はリンクを気にするつもりはありません。私はJAASでWebアプリケーションについて同様の調査を行い、JAASがJavaの世界のWebアプリケーションとは異なる「レイヤー」でセキュリティに取り組むフレームワークであることにようやく気付くまで「マインドロードブロッキング」に遭遇しました。これは、JavaEEではなくJavaSEのセキュリティ問題に取り組むために構築されています。

JAASは、Webアプリケーションよりもはるかに低いレベルで物事を保護するために構築されたセキュリティフレームワークです。これらの例としては、JVMレベルで利用可能なコードとリソースがあります。したがって、これらすべての機能により、JVMレベルでポリシーファイルを設定できます。

ただし、JavaEEはJ​​avaSEの上に構築されているため、JAASのいくつかのモジュールがLoginModulesやCallbacksなどのJavaEEセキュリティで再利用されました。

Java EEセキュリティに加えて、Springセキュリティ(以前はAcegiと呼ばれていました)もあります。これは、ネイティブJava EEセキュリティと同様に、Webアプリケーションのセキュリティ保護の問題ではるかに高い「層」に取り組みます。これは別個のセキュリティ実装であり、多くの点で同様に動作しますが、標準のJavaEEセキュリティの上に構築されていません。

要約すると、Java SEレベルでリソース(クラス、システムリソース)を保護することを検討しているのでない限り、共通のクラスとインターフェイスを使用する以外にJAASを実際に使用することはありません。SpringSecurityまたはプレーンな古いJavaEEセキュリティの使用に焦点を当てるだけで、どちらも多くの一般的なWebアプリケーションセキュリティの問題を解決します。

于 2009-03-29T15:37:04.427 に答える
23

JAASを理解するために使用したリンクの一部を次に示します。

http://www.owasp.org/index.php/JAAS_Tomcat_Login_Module

http://www.javaworld.com/jw-09-2002/jw-0913-jaas.html

http://jaasbook.wordpress.com/

http://roneiv.wordpress.com/2008/02/18/jaas-authentication-mechanism-is-it-possible-to-force-j_security_check-to-go-to-a-specific-page/

また、ApacheTomcatレルム構成のハウツーもご覧ください。

http://tomcat.apache.org/tomcat-6.0-doc/realm-howto.html

于 2009-03-09T23:38:07.900 に答える
11

javax.securityは、非常に複雑なAPIです。その結果、LoginModulesだけでなく、Authentication&Authorization Managerのように、上に抽象化レイヤーを作成する認証および承認API全体の実装者がいます。

手始めに、これをあなたの記憶に印刷するのは良いことです。

次に、JAASの最もシンプルなセットアップと実行ライブラリはJbossPicketBoxです。JBossAuthenticationManagerとJBossAuthorizationManagerを介して認証と承認を行う方法を説明しています...XMLまたは注釈を介して簡単に構成できます。Webアプリケーションとスタンドアロンアプリケーションの両方を管理するために使用できます。

リソースのACLの観点から、リポジトリアクセスを管理するための承認部分が必要な場合、これは確実に探しているものです。

セキュリティの問題は、通常、ニーズに合わせてカスタマイズする必要があるため、次のように実装することになる可能性があることです。

LoginModule -userName+パスワードを確認します

CallbackHandlerはこのように使用されますnew LoginContext("Sample", new MyCallbackHandler());

CallbackHandlerは、基盤となるLoginModuleに渡されるため、ユーザーと通信および対話できます。たとえば、グラフィカルユーザーインターフェイスを介してユーザー名とパスワードの入力を求められます。したがって、ハンドラー内でユーザーからユーザー名とパスワードを取得し、LoginModuleに渡されます。

LoginContext-次に、lc.login();を呼び出すだけです。資格情報を認証します。LoginContextには、認証されたサブジェクトが入力されます。

ただし、Jboss picketboxを使用すると、特定の何かが必要な場合を除いて、非常に簡単に移動できます。

于 2011-06-21T09:49:59.213 に答える
2

JAAS 自体についてあまり多くを語ることはできませんが、Spring Security に関するこの「推奨される手順」ガイドとリファレンス マニュアルはどちらも、Spring Security に関する非常に優れたリソースです。これらを読む以上のことをしてください。

于 2009-03-09T23:58:33.780 に答える
1

純粋なJAASチュートリアルについては、こちらをご覧ください。古いですが、JAASの基本に役立つはずです。

于 2009-03-09T23:31:00.443 に答える