14.2.6. セキュリティー拡張アーキテクチャーについて

JBoss Enterprise Application Platform のセキュリティー拡張のアーキテクチャーは 3 つの部分で構成されています。基盤のセキュリティーインフラストラクチャーが LDAP や Kerberos、その他の外部システムであるかに関わらず、これらの 3 つの部分はアプリケーションを基盤のセキュリティーインフラストラクチャーへ接続します。
JAAS

インフラストラクチャーの最初の部分は JAAS API になります。JAAS はセキュリティーインフラストラクチャーとアプリケーションの間の抽象化レイヤーを提供するプラグイン可能なフレームワークです。

JAAS の主な実装は、AuthenticationManager インターフェースと RealmMapping インターフェースを実装する org.jboss.security.plugins.JaasSecurityManager です。JaasSecurityManager は、対応するコンポーネントデプロイメント記述子の <security-domain> 要素を基に、EJB レイヤーと Web コンテナレイヤーに統合します。
JAAS に関する詳細は 「Java Authentication and Authorization Service (JAAS)」 を参照してください。
JaasSecurityManagerService MBean

JaasSecurityManagerService MBean サービスはセキュリティーマネージャーを管理します。名前は JAAS で始まりますが、処理するセキュリティーマネージャーは実装で JAAS を使用する必要はありません。この名前は、デフォルトのセキュリティーマネージャー実装が JaasSecurityManager であることを示しています。

JaasSecurityManagerService の主要な役割はセキュリティーマネージャー実装を外部化することです。AuthenticationManager インターフェースと RealmMapping インターフェースの代替の実装を提供してセキュリティーマネージャーの実装を変更することができます。
JaasSecurityManagerService の 2 つ目の基礎的な役割は、JNDI javax.naming.spi.ObjectFactory 実装を提供して JNDI 名とセキュリティーマネージャー実装との間でバインディングの簡単なコードのない管理を実現することです。セキュリティーを有効にするには、<security-domain> デプロイメント記述子要素よりセキュリティーマネージャー実装の JNDI 名を指定します。
JNDI 名を指定する時、オブジェクトバインディングが既に存在する必要があります。JNDI 名とセキュリティーマネージャー間のバインディング設定を簡単にするため、JaasSecurityManagerService次のネーミングシステムリファレンス をバインドし、java:/jaas という名前の JNDI の ObjectFactory として JaasSecurityManagerService 自体をノミネートします。これにより、java:/jaas/XYZ という形式の命名規則を <security-domain>要素の値とすることができます。セキュリティードメインの名前を取るコンストラクターを使用して SecurityManagerClassName 属性によって指定されるクラスのインスタンスを作成して、XYZ セキュリティードメインのセキュリティーマネージャーインスタンスは必要な時に作成されます。

注記

java:/jaas プレフィックスがデプロイメント記述子に含まれるようにする必要はありません。後方互換性を維持するため指定することがあるかもしれませんが、このプレフィックスは無視されます。
JaasSecurityDomain MBean

org.jboss.security.plugins.JaasSecurityDomain は、 SSL やその他の暗号化のユースケースをサポートするため KeyStoreKeyManagerFactoryTrustManagerFactory の概念を追加する JaasSecurityManager の拡張です。

詳細情報

詳細や動作しているセキュリティーアーキテクチャーの実例については 「Java Authentication and Authorization Service (JAAS) について」 を参照してください。