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 やその他の暗号化のユースケースをサポートするため KeyStore
や KeyManagerFactory
、TrustManagerFactory
の概念を追加する JaasSecurityManager
の拡張です。
詳細情報
詳細や動作しているセキュリティーアーキテクチャーの実例については 「Java Authentication and Authorization Service (JAAS) について」 を参照してください。