14.2.6. セキュリティー拡張アーキテクチャーについて
インフラストラクチャーの最初の部分は JAAS API になります。JAAS はセキュリティーインフラストラクチャーとアプリケーションの間の抽象化レイヤーを提供するプラグイン可能なフレームワークです。
AuthenticationManager
インターフェースと RealmMapping
インターフェースを実装する org.jboss.security.plugins.JaasSecurityManager
です。JaasSecurityManager
は、対応するコンポーネントデプロイメント記述子の <security-domain>
要素を基に、EJB レイヤーと Web コンテナレイヤーに統合します。
JaasSecurityManagerService
MBean
JaasSecurityManagerService
MBean サービスはセキュリティーマネージャーを管理します。名前は JAAS で始まりますが、処理するセキュリティーマネージャーは実装で JAAS を使用する必要はありません。この名前は、デフォルトのセキュリティーマネージャー実装が JaasSecurityManager
であることを示しています。
JaasSecurityManagerService
の主要な役割はセキュリティーマネージャー実装を外部化することです。AuthenticationManager
インターフェースと RealmMapping
インターフェースの代替の実装を提供してセキュリティーマネージャーの実装を変更することができます。
JaasSecurityManagerService
の 2 つ目の基礎的な役割は、JNDI javax.naming.spi.ObjectFactory
実装を提供して JNDI 名とセキュリティーマネージャー実装との間でバインディングの簡単なコードのない管理を実現することです。セキュリティーを有効にするには、<security-domain>
デプロイメント記述子要素よりセキュリティーマネージャー実装の JNDI 名を指定します。
JaasSecurityManagerService
が 次のネーミングシステムリファレンス をバインドし、java:/jaas
という名前の JNDI の ObjectFactory
として JaasSecurityManagerService
自体をノミネートします。これにより、java:/jaas/XYZ
という形式の命名規則を <security-domain>
要素の値とすることができます。セキュリティードメインの名前を取るコンストラクターを使用して SecurityManagerClassName
属性によって指定されるクラスのインスタンスを作成して、XYZ
セキュリティードメインのセキュリティーマネージャーインスタンスは必要な時に作成されます。
注記
java:/jaas
プレフィックスがデプロイメント記述子に含まれるようにする必要はありません。後方互換性を維持するため指定することがあるかもしれませんが、このプレフィックスは無視されます。
org.jboss.security.plugins.JaasSecurityDomain
は、 SSL やその他の暗号化のユースケースをサポートするため KeyStore
や KeyManagerFactory
、TrustManagerFactory
の概念を追加する JaasSecurityManager
の拡張です。
詳細や動作しているセキュリティーアーキテクチャーの実例については 「Java Authentication and Authorization Service (JAAS) について」 を参照してください。