現在、さまざまなソースからの認証を必要とするJBossAS7で実行されているプロジェクトに取り組んでいます。認証を提供するために組み合わされるさまざまなコンポーネントを理解しようとしています。
私はこれがどのように組み合わされるかについていくつかの仮定/推測を持っていますが、私の理解が正しいことを確認する必要があります。以下は、JBossAS7の認証プロセスであると私が理解していることです。
ユーザーの認証方法を定義するセキュリティレルムがあります。次に、このレルムは、その一部またはすべてを保護するためにアプリケーションに公開されます。AS7では、これは<subsystem xmlns = "urn:jboss:domain:security:1.0">要素で設定されます。
レルムは、データベース、LDAP、ローカルファイルなどのログインモジュールを使用して、さまざまなソースに対してユーザーを認証するように構成できます。複数のログインモジュールを定義できます。認証を行うには、ログインモジュールの組み合わせを「成功」させる必要があることを指定できます。
実際のユーザー名とパスワードは、<login-config>要素で定義されたweb.xmlファイル(サーブレット用)で定義されたメカニズムを介して渡されます。
上記のプロセスが正しいと仮定すると(正しくない場合もあります):
- この認証プロセス全体はJAASのような仕様に該当しますか、それともJAASはこの手順のほんの一部またはオプションの部分ですか?
- すべてのタイプの<auth-methods>(つまり、BASIC、DIGEST、およびFORM)は、すべての種類のログインモジュールで機能しますか?このページはそうではないことを示唆しているように見えますが、<login-module>オプション<login-config>オプションに一致する明確なドキュメントは見ていません。
- login-configからlogin-moduleへのユーザー名とパスワードのフローは十分に単純に見えますが、中間ステップ(外部ログインページへのリダイレクトなど)があるOpenIDやOAuthなどのシステムではどうなりますか?
- Seam 3 Security、Apache Shiro、Spring Securityなどのプロジェクトはこの図にどのように当てはまりますか?