Chapitre 17. Sécurité basée-rôle pour les applications
17.1. Security Extension Architecture
La première partie de l'infrastructure est l'API JAAS. JAAS est un framework additionnel qui procure une couche d'abstraction entre l'infrastructure de sécurité et votre application.
org.jboss.security.plugins.JaasSecurityManager
, qui implémente les interfaces AuthenticationManager
et RealmMapping
. JaasSecurityManager
s'intègre dans les couches de conteneur EJB et web, basées sur l'élément <security-domain>
du descripteur de déploiement du composant correspondant.
JaasSecurityManagerService
Le service MBean JaasSecurityManagerService
s'occupe des gestionnaires de la sécurité. Bien que son nom commence par Jaas, les gestionnaires de sécurité qu'il gère n'ont pas besoin pas d'utiliser JAAS dans leur implémentation. Le nom reflète le fait que l'implémentation de gestionnaire de sécurité par défaut est le JaasSecurityManager
JaasSecurityManagerService
est d'externaliser la mise en œuvre du gestionnaire de sécurité. Vous pouvez modifier la mise en œuvre du gestionnaire de sécurité en fournissant une implémentation alternative des interfaces AuthenticationManager
et RealmMapping
.
JaasSecurityManagerService
est de fournir une implémentation javax.naming.spi.ObjectFactory
JNDI pour permettre une gestion simple de la liaison dépourvue de code entre le nom JNDI et l'implémentation du gestionnaire de sécurité, sans code. Pour activer la sécurité, spécifiez le nom JNDI de l'implémentation du gestionnaire de sécurité par l'intermédiaire de l'élément de descripteur de déploiement <security-domain>
.
JaasSecurityManagerService
relie un next naming system reference, qui se nomme lui-même comme ObjectFactory
JNDI sous le nom java:/jaas
. Cela permet à une convention de nommage de la forme java:/jaas/XYZ
à correspondre à la valeur de l'élément <security-domain>
, et l'instance du gestionniaire de sécurité du domaine de sécurité XYZ
sera créée selon les besoins, en créant une instance de la classe spécifiée par l'attribut SecurityManagerClassName
, par l'intermédiaire d'un constructeur qui prendra le nom du domaine de sécurité.
Note
java:/jaas
à votre descripteur de déploiement. Vous pouvez le faire, pour les raisons de compatibilité rétroactive, mais ce sera ignoré.
org.jboss.security.plugins.JaasSecurityDomain
est une extension de JaasSecurityManager
, qui ajoute la notion de KeyStore
, de KeyManagerFactory
et de TrustManagerFactory
pour SSL et autres cas d'utilisation cryptographique.
Pour plus d'informations, et pour obtenir des exemples pratiques de l'architecture de sécurité en action, voir Section 17.3, « Java Authentication and Authorization Service (JAAS) ».